簡體   English   中英

Apache Spark to_json選項參數

[英]Apache Spark to_json options parameter

我或者不知道我在尋找什么,或者缺少文檔。 鑒於這種情況,后者似乎是這樣:

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-

“ options-用於控制如何將struct列轉換為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。 僅使用struct就足夠了。

如將您的代碼更改為這樣。

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM