2016-07-26 77 views
0

我有spark 1.6並嘗試讀取csv(或tsv)文件作爲數據幀。 這裏是我採取的步驟:將csv讀取爲火花1.6中的數據幀

scala> val sqlContext= new org.apache.spark.sql.SQLContext(sc) 
scala> import sqlContext.implicits._ 
scala> val df = sqlContext.read 
scala> .format("com.databricks.spark.csv") 
scala> .option("header", "true") 
scala.option("inferSchema", "true") 
scala> .load("data.csv") 
scala> df.show() 

<console>:35: error: value show is not a member of org.apache.spark.sql.DataFrameReader df.show() 

最後的命令是爲了顯示數據框的第幾行,但我得到的錯誤信息。 任何幫助將不勝感激。

感謝 @

+0

你只是複製/粘貼spark-csv的例子是沒有試圖瞭解它如何工作的外殼。 – eliasah

回答

4

看起來你功能無法正常鏈接在一起,它試圖在VAL DF,這對DataFrameReader類的引用運行「秀()」。 如果我運行下面的,我可以重現你的錯誤:

val df = sqlContext.read 
df.show() 

如果重組的代碼,它的工作:

val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").load("data.csv") 
df.show() 
+0

謝謝!我嘗試了,但現在我收到錯誤消息:「java.lang.ClassNotFoundException:無法找到數據源:com.databricks.spark.csv」 – user2145299

+1

如果您在本地嘗試此操作,則需要添加SparkCSV jar到你的類路徑。您可以按照此處的說明啓動外殼並將瓶子拉入您的環境:https://github.com/databricks/spark-csv $ SPARK_HOME/bin/spark-shell --packages com.databricks:spark-csv_2 .10:1.4.0 – MrChristine

+0

謝謝大家!它現在可以工作,創建的數據框還有第一行(C0,C1,C2,...)作爲列標題!實際的列標題被視爲數據的第一行。我該如何解決? – user2145299

0

在java中先加依賴於pom.xml文件並運行之後代碼來讀取CSV文件。

<dependency> 
      <groupId>com.databricks</groupId> 
      <artifactId>spark-csv_2.10</artifactId> 
      <version>1.4.0</version> 
     </dependency> 

Dataset<Row> df = sparkSession.read().format("com.databricks.spark.csv").option`enter code here`("header", true).option("inferSchema", true).load("hdfs://localhost:9000/usr/local/hadoop_data/loan_100.csv"); 
0

請改用以下:

val sqlContext = new SQLContext(sc); 

應該解決您的問題。