Я запрашиваю искру sql, как показано ниже, и пытаюсь объединить столбцы в один ряд:
interalexternalid = spark.sql("""Select InternalId, ExternalId from datatable limit 4""")
jsonDf = interalexternalid.select(to_json(struct([interalexternalid[x] for x in interalexternalid.columns])).alias("body"))
display(jsonDf)
Я получаю такие данные:
"body"
{"InternalId":480941,"ExternalId":"a020H00001Tt7NrQAJ"}
{"InternalId":480942,"ExternalId":"a020H00001Tt7NsQAJ"}
{"InternalId":480556,"ExternalId":"a020H00001TdAEVQA3"}
{"InternalId":480557,"ExternalId":"a020H00001TdAEWQA3"}
Моя цель это получить данные, как показано ниже в столбце «тело»
«тело»:
[{"InternalId": 480941}, {"ExternalId": "a020H00001Tt7NrQAJ"}]
[{"InternalId": 480942}, {"ExternalId": "a020H00001Tt7NsQAJ"}]
[{"InternalId": 480556}, {"ExternalId": "a020H00001TdAEVQA3"}]
[{"InternalId": 480557}, {"ExternalId": "a020H00001TdAEWQA3"}]
как это может быть достигнуто. Я использую python в вышеуказанном контексте. но оба решения python и scala будут полезны. спасибо