2017-10-20 98 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