我试图使用spark csv lib在hdfs文件上创建一个数据框对象,如图in this tutorial所示。
但是当我试图获取DataFrame对象的计数时,它显示为0
这是我的文件,
employee.csv:
empid,empname
1000,Tom
2000,Jerry
我使用
加载了上面的文件val empDf = sqlContext.read.format("com.databricks.spark.csv").option("header","true").option("delimiter",",").load("hdfs:///user/.../employee.csv");
当我查询时,empDf object.printSchema()给出了带有empid的正确模式,empname作为字符串字段,我可以看到分隔符已正确读取。
但是当我尝试使用时显示dataFrame, empDf.show只提供列标题,并且没有数据,当我执行empDf.count给出0记录时。
如果我错过了一些非常需要的事情,请纠正我。
答案 0 :(得分:0)
确保构建Spark分发版的spark-csv
版本和Scala版本相同。
例如,如果您的Spark发行版是使用Scala 2.10(Databricks预构建的Spark发行版的默认Scala版本)构建的,则需要spark-csv_2.10
- 版本spark-csv_2.11
(如上所述教程中所示)将不起作用,并将返回仅包含列名称的空数据框 - 有关类似情况,请参阅my answer to this SO question。