我想发出一个复杂的查询并从中创建多个图表。关于如何做到的任何想法?
答案 0 :(得分:2)
查看Zeppelin Tutorial以及默认安装的相关示例笔记本。在第一段中,它展示了如何为API和SQL使用构建数据集。然后在后面的段落中使用相同的数据集。从版本0.6.2中的教程笔记本:
import org.apache.commons.io.IOUtils
import java.net.URL
import java.nio.charset.Charset
// Zeppelin creates and injects sc (SparkContext) and sqlContext (HiveContext or SqlContext)
// So you don't need create them manually
// load bank data
val bankText = sc.parallelize(
IOUtils.toString(
new URL("https://s3.amazonaws.com/apache-zeppelin/tutorial/bank/bank.csv"),
Charset.forName("utf8")).split("\n"))
case class Bank(age: Integer, job: String, marital: String, education: String, balance: Integer)
val bank = bankText.map(s => s.split(";")).filter(s => s(0) != "\"age\"").map(
s => Bank(s(0).toInt,
s(1).replaceAll("\"", ""),
s(2).replaceAll("\"", ""),
s(3).replaceAll("\"", ""),
s(5).replaceAll("\"", "").toInt
)
).toDF()
bank.registerTempTable("bank")
然后,您可以使用Spark SQL引用它:
%sql
select * from bank limit 5
或直接使用银行DataFrame:
%spark
bank.show(5)