{
"cars": {
"Nissan": {
"Sentra": {"doors":4, "transmission":"automatic"},
"Maxima": {"doors":4, "transmission":"automatic","colors":["b#lack","pin###k"]}
},
"Ford": {
"Taurus": {"doors":4, "transmission":"automatic"},
"Escort": {"doors":4, "transmission":"auto#matic"}
}
}
}
我有一个我已经读过的JSON,我想删除每个字符串中可能存在的每个#符号。我的问题是让这个函数泛型,所以它可以在我遇到的每个模式上工作,而不仅仅是上面JSON中使用的这个模式。
发布于 2021-11-15 06:01:12
您可以这样做:从模式中获取所有字段,使用带有DataFrame
本身的fold
作为累加器,然后应用所需的函数
def replaceSymbol(df: DataFrame): DataFrame =
df.schema.fieldNames.foldLeft(df)((df, field) => df.withColumn(field, regexp_replace(col(field), "#", "")))
您可能需要检查该列是否为字符串。
https://stackoverflow.com/questions/69904547
复制