hadoop - 值 avro 不是 org.apache.spark.sql.DataFrameReader 的成员

标签 hadoop apache-spark apache-spark-sql avro

我正在使用 cloudera 5.4.1 和 spark 1.3.0

这段代码是我写的

val path = "/input/"
val conf = new SparkConf()
  .setAppName("Form Submissions")
val sc = new SparkContext(conf)
val sqlConf = new SQLContext(sc)
val df = sqlConf.read.avro(path)
df.foreach(println)

这是我的sbt文件

name := "SparkAvro"

version := "1.0"

scalaVersion := "2.10.4"

libraryDependencies ++= Seq(
  //"org.apache.spark" % "spark-core_2.10" % "1.2.0",
  "org.apache.spark" % "spark-core_2.10" % "1.5.2" % "provided",
  "org.apache.spark" % "spark-sql_2.10" % "1.5.2" % "provided",
  "com.databricks" % "spark-avro_2.10" % "1.0.0"
)

mainClass in assembly := Some("com.abhi.SparkAvro")

当我构建这个项目时,它失败并显示此错误消息

[error] /Users/ab/MyProjects/SparkAvro/src/main/scala/com/abhi/SparkAvro.scala:17: 
value avro is not a member of org.apache.spark.sql.DataFrameReader
[error]     val df = sqlConf.read.avro(input)
[error]                           ^
[error] one error found

因此,似乎 Spark Avro 的 github 页面上的文档适用于 2.0.1 版,而这些 API 不适用于 1.0 版的 Spark Avro。

我尝试在网上搜索,但找不到可向我展示如何在 Spark Avro 1.0 上编写代码以及如何在 HDFS 上解析 Avro 文件的文档。

最佳答案

导入隐式转换也可以

import com.databricks.spark.avro._

关于hadoop - 值 avro 不是 org.apache.spark.sql.DataFrameReader 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34092198/

相关文章:

java - Hadoop - 未加载 IntWritable(int) 构造函数

Hadoop : HDFS space quota

python - 如何使用python在spark SQL中传递变量?

java - Spark ML Pipeline api 保存不起作用

apache-spark - 将PySpark Dataframe批量写入SQL DB

apache-spark - 出现错误时如何使 Spark 应用程序失败

java - Hadoop 2( yarn )。获取 java.io.IOException : wrong key class. 异常

r - rHipe mapreduce获取正在处理的文件名

scala - 如何避免 KNN 搜索的 for 循环?

python - 带有 case 语句的 for 循环