我想使用数据集并从中创建多个图表。 Zepplin支持这个吗?

时间:2016-12-13 23:48:11

标签: apache-zeppelin

我想发出一个复杂的查询并从中创建多个图表。关于如何做到的任何想法?

1 个答案:

答案 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)