Spark DF 到 Tableau TDE

Spark DF to Tableau TDE

要求:编写一个 DF,通过使用 spark 从 sql 服务器加载数据到 tableau extract(.tde) 我使用了提供的这个外部 jar 文件 https://spark-packages.org/package/werneckpaiva/spark-to-tableau 并启动 spark shell 如下

spark-shell --driver-class-path D:\Spark\jdbc\sqljdbc_6.0\enu\jre7\sqljdbc41.jar --packages werneckpaiva:spark-to-tableau:0.1.0

Shell 加载没有错误,我使用下面的代码创建了 DF,DF.Show(10) 也工作正常

val sqlContext = new org.apache.spark.sql.SQLContext(sc) import TableauDataFrame._
val jdbcSqlConnStr = "jdbc:sqlserver://IP:1433;databaseName=Dbname;user=UserName;password=Password;"
val jdbcDbTable = "dbo.TableName"
val jdbcDF = sqlContext.read.format("jdbc").option("url",jdbcSqlConnStr).option("dbtable",jdbcDbTable).load()
//To check DF
jdbcDF.show(10)

除此之外,现在当我调用命令时,它抛出以下错误

jdbcDF.write.format("tableau").save("D:\Spark\mydata.tde")
error: value TableauDataFrame is not a member of org.apache.spark.sql.DataFrameWriter[org.apache.spark.sql.Row]

根据很少的阅读,我尝试如下所示隐式导入类,这也会引发错误

import TableauDataFrame._
<console>:23: error: not found: value TableauDataFrame
       import TableauDataFrame._

有人可以帮我解决我所缺少的吗

我通过将所有必需的 jar(包含在 werneckpaiva:spark-to-tableau:0.1.0 包中的那些)放在 spark bin 文件夹中并如下调用这些 jar 来解决这个问题

spark-shell --driver-class-path sqljdbc41.jar;spark-to-tableau-0.1.0.jar

然后我可以导入下面的所有内容

import tableau.TableauDataFrame._
import tableau.TableauDataFrameImplicity