【发布时间】:2016-06-10 09:41:10
【问题描述】:
我想从 Tableau 中的 Spark SQL 访问内存中的数据。
我阅读了本教程并执行了以下操作: http://downloads.tableau.com/beta/Tableau%20Spark%20SQL%20Setup%20Instructions.pdf
在 VirtualBox 中的 Linux 上:
- 从http://www.apache.org/dyn/closer.lua/spark/spark-1.6.0/spark-1.6.0-bin-hadoop2.6.tgz 下载了带有 Hadoop 2.6 的 SparkSQL 1.5.2
- 运行 start-master.sh 和 start-slaves.sh
-
运行这个命令:
start-thriftserver.sh --master spark://localhost:7077 -- 驱动程序类路径 $CLASSPATH --hiveconf hive.server2.thrift.bind.host localhost --hiveconf hive.server2.thrift.port 10001
在主机站点上(Windows 8):
- 已下载 Tableau,
- 转发端口(主机上的 8124 = 来宾上的 10001)
- 已安装 Spark ODBC 驱动程序。
之后,我成功地将 Tableau 与 SparkSQL 连接起来。
现在我想在 spark-shell 中创建一些表并使用 Tableau 访问它们。 我在 spark-shell 上运行这些命令:
val sqlContext = new org.apache.spark.sql.SQLContext(sc)
import sqlContext.implicits._
case class Person(name: String, age: Int)
val people = sc.textFile("examples/src/main/resources/people.txt").map(_.split(",")).map(p => Person(p(0), p(1).trim.toInt)).toDF()
people.registerTempTable("people")
之后,我再次连接到 Spark Thrift 服务器,但仍然看不到任何数据。问题是:
- 我不知道如何才能使“人员”表对 Tableau 可见。
- 我不知道,是什么决定了 Tableau 可以访问 Spark SQL 中的数据。
如何使这些数据对 Tableau 可见?
【问题讨论】:
-
我应该使用 HiveThriftServer2.startWithContext(sqlContext.asInsanceOf[HiveContext]) 吗?如何设置 HiveContext 的主机和端口?
-
使用
SQLContext.setConf方法?
标签: apache-spark hive apache-spark-sql tableau-api