【发布时间】:2018-05-23 11:08:25
【问题描述】:
我有一个包含 10 列的 Spark Dataframe,我需要将其存储在 Postgres/RDBMS 中。该表有 7 列,第 7 列接收文本(JSON 格式)以供进一步处理。
如何选择 6 列并将 DF 中的剩余 4 列转换为 JSON 格式?
如果要将整个 DF 存储为 JSON,那么我们可以使用 DF.write.format("json"),但只需要最后 4 列是 JSON 格式。
我尝试创建一个 UDF(使用 Jackson 或 Lift lib),但未能成功将 4 列发送到 UDF。
对于 JSON,DF 列名是键,DF 列的值是值。
例如:
dataset name: ds_base
root
|-- bill_id: string (nullable = true)
|-- trans_id: integer (nullable = true)
|-- billing_id: decimal(3,-10) (nullable = true)
|-- asset_id: string (nullable = true)
|-- row_id: string (nullable = true)
|-- created: string (nullable = true)
|-- end_dt: string (nullable = true)
|-- start_dt: string (nullable = true)
|-- status_cd: string (nullable = true)
|-- update_start_dt: string (nullable = true)
I want to do,
ds_base
.select ( $"bill_id",
$"trans_id",
$"billing_id",
$"asset_id",
$"row_id",
$"created",
?? <JSON format of 4 remaining columns>
)
【问题讨论】:
标签: json scala apache-spark dataframe