在Spark中读取Avro文件

加耶特里

我已经将avro文件读入spark RDD,需要将其转换为sql数据框。我怎么做。

这是我到目前为止所做的。

import org.apache.avro.generic.GenericRecord
import org.apache.avro.mapred.{AvroInputFormat, AvroWrapper}
import org.apache.hadoop.io.NullWritable

val path = "hdfs://dds-nameservice/user/ghagh/"
val avroRDD = sc.hadoopFile[AvroWrapper[GenericRecord], NullWritable, AvroInputFormat[GenericRecord]](path)

当我做:

avro.take(1)

我回来

res1: Array[(org.apache.avro.mapred.AvroWrapper[org.apache.avro.generic.GenericRecord], org.apache.hadoop.io.NullWritable)] = Array(({"column1": "value1", "column2": "value2", "column3": value3,...

如何将其转换为SparkSQL数据框?

我正在使用Spark 1.6

谁能告诉我是否有解决这个问题的简便方法?

阿尔珀 图尔克

因为DataFrame我会直接使用Avro数据源

  • 在软件包列表中包括spark-avro。对于最新版本,请使用:

    com.databricks:spark-avro_2.11:3.2.0
    
  • 加载文件:

    val df = spark.read
      .format("com.databricks.spark.avro")
      .load(path)
    

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章