2017-10-20 63 views
0

要求:收件通过加载数据从SQL服务器创建使用火花 我用这个外部jar文件提供 https://spark-packages.org/package/werneckpaiva/spark-to-tableau 并开始火花外壳如下面一个画面提取物(.tde)一个DF火花DF到的Tableau TDE

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

壳牌加载没有错误,我已经使用以下代码和DF.Show(10)创建的DF也工作正常

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] 

从几个读书OWS,我试图导入班组长隐含如下这也抛出错误

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

可能有人帮助我,我很想念

+0

我不认为这是可能的,截至目前。我只是交叉检查了Spark 2.2.0中可用的所有数据源,只发现了csv,jdbc,json,orc,parquet,text和v2。此外,没有发现任何已经在github上创建的库。你可以做的是转储,它以一些中间格式,如CSV或Parquet,并再次从tableau加载。让我们知道这是否有帮助。 –

回答

0

我的解决了这个问题将所有必需的罐子(包括在包装中的包装:火花到桌面:0.1.0)放置在火花筒文件夹中并且如下调用罐子

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

然后我可以导入所有如下

import tableau.TableauDataFrame._ 
import tableau.TableauDataFrameImplicity