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

use*_*299 2 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()
Run Code Online (Sandbox Code Playgroud)

错误:

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

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

MrC*_*ine 9

看起来你的函数没有正确链接在一起,它试图在val df上运行"show()",这是对DataFrameReader类的引用.如果我运行以下内容,我可以重现您的错误:

val df = sqlContext.read
df.show()
Run Code Online (Sandbox Code Playgroud)

如果您重新构建代码,它将工作:

val df = sqlContext.read.format("com.databricks.spark.csv").option("header", "true").option("inferSchema", "true").load("data.csv")
df.show()
Run Code Online (Sandbox Code Playgroud)

  • 如果您在本地尝试此操作,则需要将 SparkCSV jar 添加到类路径中。您可以按照此处的说明启动 shell 并将 jars 拉入您的环境:https://github.com/databricks/spark-csv $SPARK_HOME/bin/spark-shell --packages com.databricks:spark-csv_2.10 :1.4.0 (2认同)