【发布时间】:2020-01-08 23:48:59
【问题描述】:
我正在读取一个 .avro 文件,其中特定列的数据是二进制格式。我目前在 UDF 的帮助下将二进制格式转换为字符串格式以实现可读性,最后我需要将其转换为 JSON 格式以进一步解析数据。有没有办法可以使用 Spark Scala 代码将字符串对象转换为 JSON 格式。
任何帮助将不胜感激。
val avroDF = spark.read.format("com.databricks.spark.avro").
load("file:///C:/46.avro")
import org.apache.spark.sql.functions.udf
// Convert byte object to String format
val toStringDF = udf((x: Array[Byte]) => new String(x))
val newDF = avroDF.withColumn("BODY",
toStringDF(avroDF("body"))).select("BODY")
newDF 的输出如下所示:
BODY |
+---------------------------------------------------------------------------------------------------------------+
|{"VIN":"FU74HZ501740XXXXX","MSG_TYPE":"SIGNAL","TT":0,"RPM":[{"E":1566800008672,"V":1073.75},{"E":1566800002538,"V":1003.625},{"E":1566800004084,"V":1121.75}
【问题讨论】:
标签: json scala apache-spark apache-spark-sql spark-avro