+---+----------+
| id| value|
+---+----------+
| 1|{"a": 123}|
| 2|{"a": 456}|
| 3|{"a": 789}|
+---+----------+
こちらのvalue列内のJSON文字列からaの要素を新しい列に取り出してみます。
from pyspark.sql.functions import get_json_object
df = spark.createDataFrame([
(1, '{"a": 123}'),
(2, '{"a": 456}'),
(3, '{"a": 789}')
],
["id", "value"])
df = df.withColumn("a", get_json_object(col("value"), "$.a").cast("integer"))
df.show()
get_json_object
というメソッドを使ってJSON文字列から値を取り出すことができるので、取り出したデータをwithColumn
で新しい列を追加して値を入れます。
+---+----------+---+
| id| value| a|
+---+----------+---+
| 1|{"a": 123}|123|
| 2|{"a": 456}|456|
| 3|{"a": 789}|789|
+---+----------+---+