在scala中将CSV文件转换为AVRO

时间:2017-06-02 06:25:52

标签: scala avro

我是scala的新手。我正在尝试将CS​​V文件转换为avro格式。我试图谷歌这个,但无法找到任何东西。我已经使用了我的样本输入文件和AVSC格式(再次来自谷歌)。

{"namespace": "example.avro",
 "type": "record",
 "name": "User",
 "fields": [
     {"name": "name", "type": "string"},
     {"name": "favorite_number",  "type": ["int", "null"]},
     {"name": "favorite_color", "type": ["string", "null"]}
 ]
}

示例文件:

name_1,12,yellow
name_2,22,red
name_3,32,green

另外,如何将其放大到Control A分离文件。

1 个答案:

答案 0 :(得分:0)

最明显的解决方案是使用数据库中的spark-avro。 它看起来像这样:

import com.databricks.spark.avro._
import org.apache.spark.sql.SparkSession

val spark = SparkSession.builder().master("local").getOrCreate()
val df = spark.read.format("csv").load("data.csv")
df.write.avro("converted.avro")

与测试目的的替代方法一样,您只能使用this script on python