DataFrame列转json以及json转DataFrame列

DataFrame列转json以及json转DataFrame列

spark structed stream接入kafka时,获取到的value字段一般情况下是json的字符串类型,
一般情况下处理的时候需要转成DataFrame列的形式来处理,等处理结束后,再把经过转换后的
列转成json字符串的形式写到kafka中

json字符串转成DataFrame列的代码如下:

data = [("1", '''{"f1": "value1", "f2": "value2"}'''), ("2", '''{"f1": "value12"}''')]
df = spark.createDataFrame(data, ("key", "jstring"))
df.show(10, False)

dfparse = df.select(df.key, get_json_object(df.jstring, '$.f1').alias("c0"), get_json_object(df.jstring, '$.f2').alias("c1") )
dfparse.show(10, False)

DataFrame列转json以及json转DataFrame列_第1张图片
DataFrame列转json以及json转DataFrame列_第2张图片

DataFrame列转成json字符串的代码如下:

finalDF = dfparse.withColumn("jsonCol", to_json(struct("key","c0","c1")))
finalDF.show(10, False)

DataFrame列转json以及json转DataFrame列_第3张图片

你可能感兴趣的:(大数据,maven,java,spark)