我有一个JSON数据存储为字符串列在spark框架,它有一些坏数据例如:
{"name":"neo",
"age":"22",
"city""nowhere",
"country":""}
字符串
我需要转换列值以添加“city”:“nowhere”。我尝试了以下方法,但它无法按预期工作。我应该更改什么才能使其工作
val regex = """(".*?")(".*?")"""
df.withColumn("updated_col", regexp_replace(col("value"), regex, "$1:$2"))
型
3条答案
按热度按时间gcxthw6b1#
检查以下解决方案
个字符
2lpgd9682#
由于Spark的regexp_replace的限制(或者可能是我理解它的局限性),我成功做到这一点的唯一方法是使用如下所示的临时唯一的索引来执行两步过程:
字符串
我也想知道另一种管理方式。
gcxthw6b3#
下面是使用json和map spark函数的代码。我已经测试过了。
字符串
输出量:
型