2016-07-26 95 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); 

应该解决您的问题。