在spark 1.6中将csv作为数据帧读取

时间:2016-07-26 17:01:23

标签: scala apache-spark

我有Spark 1.6并试图将csv(或tsv)文件作为数据帧读取。 以下是我采取的步骤:

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()

最后一个命令应该显示数据帧的前几行,但是我收到错误消息。任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:9)

看起来你的函数没有正确链接在一起,并且它试图在val df上运行“show()”,这是对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()

答案 1 :(得分:1)

在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");

答案 2 :(得分:0)

请改用以下内容:

val sqlContext = new SQLContext(sc);

它应该可以解决您的问题。