Adi*_*ngh 5 java apache-spark apache-spark-dataset
我Dataset<Row>在Java中。我需要读取1列的值(它是JSON字符串),对其进行解析,然后根据已解析的JSON值设置其他几列的值。
我的数据集如下所示:
|json | name| age |
========================================
| "{'a':'john', 'b': 23}" | null| null |
----------------------------------------
| "{'a':'joe', 'b': 25}" | null| null |
----------------------------------------
| "{'a':'zack'}" | null| null |
----------------------------------------
Run Code Online (Sandbox Code Playgroud)
我需要这样:
|json | name | age |
========================================
| "{'a':'john', 'b': 23}" | 'john'| 23 |
----------------------------------------
| "{'a':'joe', 'b': 25}" | 'joe' | 25 |
----------------------------------------
| "{'a':'zack'}" | 'zack'|null|
----------------------------------------
Run Code Online (Sandbox Code Playgroud)
我无法找到一种方法。请帮助代码。
Spark中有一个函数get_json_object。建议,您有一个名为 的数据框df,您可以选择这种方式来解决您的问题:
df.selectExpr("get_json_object(json, '$.a') as name", "get_json_object(json, '$.b') as age" )
Run Code Online (Sandbox Code Playgroud)
但首先,请确保您的json属性具有双引号而不是单引号。
注意: 有 Spark SQL 函数的完整列表。我正在大量使用它。考虑将其添加到书签和时常参考。
| 归档时间: |
|
| 查看次数: |
75 次 |
| 最近记录: |