2017-07-19 284 views
0

我有Maven依賴關係spark-sql_2.1.0spark-hive_2.1.0。但是,當我嘗試import org.apache.spark.sql.DataFrame時,出現錯誤。但是導入 org.apache.spark.sql.SQLContext是可以的,沒有錯誤。爲什麼?爲什麼我不能導入org.apache.spark.sql.DataFrame

+0

你正在得到什麼類型的錯誤?這對我來說工作得很好 –

+0

你使用哪種語言? –

+0

@T.Gawęda我正在使用Java –

回答

4

DataFrame已成爲type DataFrame = Dataset[Row]。 Java沒有類型別名,所以它在Java中不可用。現在,您應該使用新的類型Dataset<Row>,所以導入這兩個org.apache.spark.sql.Datasetorg.apache.spark.sql.Row

+0

如果我有一個DataFrame,sqlContext.read(),我該怎麼辦? –

+0

@JasonShu只是'數據集 dataset = sqlContext.read()' –

+0

@JasonShu你還應該在Spark 2.x中使用SparkSession: –

0
import org.apache.spark.sql.DataFrame 

作品scala而不是java因爲沒有爲java開發庫。您可以使用dataSet作爲Spark SQL, DataFrames and Datasets Guide解釋

您可以導入以下

import org.apache.spark.sql.Dataset; 
import org.apache.spark.sql.Row; 

,並把它們作爲

Dataset<Row> peopleDataFrame = spark.createDataFrame(rowRDD, schema); 

或者

Dataset<Row> peopleDF = spark.createDataFrame(peopleRDD, Person.class); 

或者

Dataset<Row> usersDF = spark.read().load("examples/src/main/resources/users.parquet"); 
+0

這是真的。但是,如果我有一個DataFrame,例如,sqlContext.read()。我應該怎麼做? –

+0

您可以使用'數據集 df = sqlContext.read.csv(「location」)''。 :)它應該沒問題。你試過了嗎 ? –

+0

是的,它工作。但是,當涉及到sqlContext.read.json,它失敗了。 –