从字符串Hive解析json



我有一个配置单元表,其中一列包含字符串形式的JSON数据。

如何将这个JSON字符串"转换"为另一个表(包含所有JSON字段等(,最好的方法是什么?我想将JSON字符串中的行插入到我的表中

或者还有其他方法可以将JSON解析为表?

我使用的是Java Spark。

感谢

使用配置单元上下文将数据帧保存在配置单元中
spark 1.6

val conf = new SparkConf().setAppName("jsontest").setMaster("local[*]")
val sc = new SparkContext(conf)
val json = """[
{
"tag_name": "A",
"item_name": "B",
"timestamp": "2018-07-09T16:59:17.8232306Z",
"value": 10
}
]"""
val jsonRdd = sc.parallelize(Seq(json))
System.setProperty("hive.metastore.uris: ", "thrift://ip:9083");
val hiveContext = new HiveContext(sc)
val df = hiveContext.read.json(jsonRdd)
df.show(false)

+---------+--------+----------------------------+-----+
|item_name|tag_name|timestamp                   |value|
+---------+--------+----------------------------+-----+
|B        |A       |2018-07-09T16:59:17.8232306Z|10   |
+---------+--------+----------------------------+-----+
//save into table
df.write.mode(SaveMode.Append).insertInto(tableName)

火花>2.0

val spark = SparkSession .builder() .appName( "SparkSessionZipsExample" ) .config( "spark.sql.warehouse.dir" , warehouseLocation) .enableHiveSupport() .getOrCreate()

最新更新