gpt4 book ai didi

java - Apache Spark to_json 选项参数

转载 作者:行者123 更新时间:2023-12-02 10:34:36 25 4
gpt4 key购买 nike

我要么不知道我在寻找什么,要么缺少文档。鉴于此,后者似乎是这种情况:

http://spark.apache.org/docs/2.2.2/api/java/org/apache/spark/sql/functions.html#to_json-org.apache.spark.sql.Column-java.util.Map-

“选项 - 控制如何将结构列转换为 json 字符串的选项。接受相同的选项和 json 数据源。”

太棒了!那么,我有什么选择?

我正在做这样的事情:

Dataset<Row> formattedReader = reader
.withColumn("id", lit(id))
.withColumn("timestamp", lit(timestamp))
.withColumn("data", to_json(struct("record_count")));

...我得到这个结果:

{
"id": "ABC123",
"timestamp": "2018-11-16 20:40:26.108",
"data": "{\"record_count\": 989}"
}

我想要这个(删除“数据”中的反斜杠和引号):

{
"id": "ABC123",
"timestamp": "2018-11-16 20:40:26.108",
"data": {"record_count": 989}
}

这是偶然的选择之一吗? Spark 有更好的指南吗? Spark 最令人沮丧的部分并不是让它做我想做的事情,而是缺乏关于它可以做什么的良好信息。

最佳答案

您对 record_count 字段进行了两次 json 编码。删除 to_json。单独的结构应该足够了。

就像将您的代码更改为这样的内容。

Dataset<Row> formattedReader = reader
.withColumn("id", lit(id))
.withColumn("timestamp", lit(timestamp))
.withColumn("data", struct("record_count"));

关于java - Apache Spark to_json 选项参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53384537/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com