2017-10-20 20 views
0

Exigence: Rédiger un DF créé par le chargement des données de serveur SQL à un extrait de tableau (de .tde) en utilisant étincelle J'ai utilisé ce fichier jar externe fourni https://spark-packages.org/package/werneckpaiva/spark-to-tableau et a commencé la coquille d'allumage comme ci-dessousSpark 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 

Shell chargé sans erreurs et j'ai créé le DF en utilisant le code ci-dessous et DF.Show (10) travaille aussi bien

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) 

Sauf que, maintenant, quand j'appelle la commande, il thor OWS ci-dessous erreur

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] 

De quelques lectures, j'ai essayé d'importer le Classs implicitement comme ci-dessous qui jette également erreur

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

Quelqu'un pourrait-il me aider ce que je suis absent

+0

Je ne pense pas qu'il est possible dès maintenant. Je viens de vérifier toutes les sources de données disponibles dans Spark 2.2.0, et je n'ai trouvé que csv, jdbc, json, orc, parquet, text et v2. De plus, je n'ai trouvé aucune bibliothèque déjà créée sur github. Ce que vous pouvez faire est de le vider, dans un format intermédiaire comme CSV ou Parquet et de charger la même chose à partir du tableau. Faites-nous savoir si cela aide. –

Répondre

0

Je fixe ce par placer tous les bocaux requis (ceux inclus dans le paquet werneckpaiva: spark-to-tableau: 0.1.0) dans le dossier de la poubelle et appeler les bocaux comme ci-dessous

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

Je suis en mesure d'importer tout comme ci-dessous

import tableau.TableauDataFrame._ 
import tableau.TableauDataFrameImplicity