我有一个字符串
shirt|~*~|trouser|~*~|t-Shirt|~*~|towels|~*~|
我正在尝试将其用'|〜*〜|'分割并以JSON String形式获取结果,这是Dataframe中的一列
有人可以帮助我吗?
~~更新~~
不确定为什么我的问题被关闭,但这是解决方案
import org.apache.spark.sql.functions.udf
import org.json4s.DefaultFormats
import org.json4s.jackson.Serialization.write
implicit val formats = DefaultFormats
def removeLastItem = udf((xs: Seq[String]) => xs.dropRight(1))
def convert2JSON = udf((ls: Seq[String]) => write(Map("list" -> ls)))
df = df.withColumn(
"str1",
convert2JSON(removeLastItem(split(col("str"), "(\\b\\|~\\*~\\|)")))
)
最终输出
{"list":["shirt","trouser","t-Shirt","towels"]}