Spark DF到Tableau TDE

时间:2017-10-20 07:00:54

标签: apache-spark spark-dataframe

要求:编写通过使用spark将数据从sql server加载到tableau数据提取(.tde)而创建的DF  我使用了这个外部jar文件 https://spark-packages.org/package/werneckpaiva/spark-to-tableau  并启动火花壳,如下所示

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._

someOne可以帮助我找到我想要的东西

1 个答案:

答案 0 :(得分:0)

我通过在spark bin文件夹中放置所有必需的罐子(包括werneckpaiva:spark-to-tableau:0.1.0中包含的罐子)并按以下方式调用罐子来解决这个问题

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

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

import tableau.TableauDataFrame._
import tableau.TableauDataFrameImplicity