2015-08-24 33 views
1

下沒有發現木地板的數據文件或摘要文件中第一次,我開始火花 - 沒有定義的架構,並

$SPARK_HOME/bin/pyspark 

,當我只寫DBTABLE =「TEST_DB」寫代碼

sqlContext.load("jdbc", url="jdbc:mysql://IP:3306/test", driver="com.mysql.jdbc.Driver", dbtable="test.test_tb") 

,錯誤是一樣的。

後發生此錯誤,

py4j.protocol.Py4JJavaError: An error occurred while calling o66.load. : java.lang.AssertionError: assertion failed: No schema defined, and no Parquet data file or summary file found under . at scala.Predef$.assert(Predef.scala:179) at org.apache.spark.sql.parquet.ParquetRelation2$MetadataCache.org$apache$spark$sql$parquet$ParquetRelation2$MetadataCache$$readSchema(newParquet.scala:429) .....

爲什麼發生這個錯誤? 我想知道並解決這個問題。

謝謝。

回答

0

我不知道這個錯誤的原因,但是我偶然發現了這個錯誤,然後找到了一種使相同的工作成功的方法。

試試這個:

df = sqlContext.read.format("jdbc").options(url="jdbc:mysql://server/table?user=usr&password=secret", dbtable="table_name").load() 

我猜想.load語法不再工作,或JDBC不起作用。希望它有效!

順便說一句,我用這個命令啓動控制檯:

SPARK_CLASSPATH=~/progs/postgresql-9.4-1205.jdbc42.jar pyspark 

我的數據庫是Postgres的,所以我下載使用JDBC的jar,並將其添加到我的類路徑,如文檔中建議。 http://spark.apache.org/docs/latest/sql-programming-guide.html#jdbc-to-other-databases