在 Spark 中读取 Avro 文件 [英] Reading Avro File in Spark

查看:24
本文介绍了在 Spark 中读取 Avro 文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已将 avro 文件读入 spark RDD,需要将其转换为 sql 数据帧.我该怎么做.

I have read an avro file into spark RDD and need to conver that into a sql dataframe. how do I do that.

这是我目前所做的.

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 数据帧?

How do I convert this to a SparkSQL dataframe?

我使用的是 Spark 1.6

I am using Spark 1.6

谁能告诉我是否有一个简单的解决方案?

Can anyone tell me if there is an easy solution around this?

推荐答案

对于 DataFrame 我会选择 Avro 直接数据源:

For DataFrame I'd go with Avro data source directly:

  • 在包列表中包含 spark-avro.最新版本使用:

  • Include spark-avro in packages list. For the latest version use:

com.databricks:spark-avro_2.11:3.2.0

  • 加载文件:

  • Load the file:

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

  • 这篇关于在 Spark 中读取 Avro 文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

    查看全文
    登录 关闭
    扫码关注1秒登录
    发送“验证码”获取 | 15天全站免登陆