如何从Pyspark的MapType列中获取键和值

问题描述 投票:0回答:1

我正在尝试在PySpark中复制此问题的解决方案(Spark <2.3,因此没有map_keys):How to get keys and values from MapType column in SparkSQL DataFrame下面是我的代码(与上面链接的问题相同的df):

import pyspark.sql.functions as F

distinctKeys = df\
  .select(F.explode("alpha"))\
  .select("key")\
  .distinct()\
  .rdd

df.select("id", distinctKeys.map(lambda x: "alpha".getItem(x).alias(x))

但是,此代码给出错误:AttributeError: 'PipelineRDD' object has no attribute '_get_object_id'。关于如何解决它的任何想法?

python scala apache-spark pyspark rdd
1个回答
0
投票

尝试创建distinctKeys作为字符串列表,然后使用列表推导将每个键设置在其自己的列上:

© www.soinside.com 2019 - 2024. All rights reserved.