您可以使用AWS Glue PySpark将以字符串表示的字典拆分为多行。以下是一个示例代码:
from pyspark.context import SparkContext
from awsglue.context import GlueContext
from pyspark.sql import SparkSession
from pyspark.sql.functions import explode, col
# 创建SparkSession和GlueContext
sc = SparkContext()
glueContext = GlueContext(sc)
spark = glueContext.spark_session
# 创建示例数据集
data = [('{"name":"John","age":30}',),
('{"name":"Alice","age":25}',),
('{"name":"Bob","age":35}',)]
df = spark.createDataFrame(data, ["json"])
# 将字符串表示的字典拆分为多行
df = df.withColumn("json", explode(df.json))
# 提取字典中的键和值
df = df.select(col("json.name").alias("name"), col("json.age").alias("age"))
# 打印拆分后的数据集
df.show()
在这个示例中,我们首先创建了一个SparkSession和GlueContext。然后,我们创建了一个包含以字符串表示的字典的示例数据集。接下来,我们使用explode
函数将字符串表示的字典拆分为多行。最后,我们使用select
函数提取字典中的键和值,并将其打印出来。