当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python PySpark Column getItem方法用法及代码示例


PySpark 列的getItem(~) 方法从PySpark 列中的列表或字典中提取值。

参数

1. key | any

key 值取决于列类型:

  • 对于列表,key 应该是一个整数索引,指示您希望提取的值的位置。

  • 对于字典,key 应该是您要提取的值的键。

返回值

新的 PySpark 列。

例子

考虑以下PySpark DataFrame:

rows = [[[5,6]], [[7,8]]]
df = spark.createDataFrame(rows, ['vals'])
df.show()



+------+
|  vals|
+------+
|[5, 6]|
|[7, 8]|
+------+

提取列表中的n-th项目

要从 vals 列中的每个列表中提取第二个值:

# Assign a label to the column returned by getItem(~)
df_result = df.select(F.col('vals').getItem(1).alias('2nd val'))
df_result.show()



+-------+
|2nd val|
+-------+
|      6|
|      8|
+-------+

请注意,我们还可以使用 [~] 语法代替 getItem(~)

df_result = df.select(F.col('vals')[1].alias('2nd val'))
df_result.show()



+-------+
|2nd val|
+-------+
|      6|
|      8|
+-------+

指定超出列表范围的索引位置将返回 null 值:

df_result = df.select(F.col('vals').getItem(9))
df_result.show()



+-------+
|2nd val|
+-------+
|   null|
|   null|
+-------+

使用字典中的键提取值

考虑以下PySpark DataFrame:

rows = [[{'A':4}], [{'A':5, 'B':6}]]
df = spark.createDataFrame(rows, ['vals'])
df.show()



+----------------+
|            vals|
+----------------+
|        {A -> 4}|
|{A -> 5, B -> 6}|
+----------------+

要提取键为 'A' 的值:

df_result = df.select(F.col('vals').getItem('A'))
df_result.show()



+-------+
|vals[A]|
+-------+
|      4|
|      5|
+-------+

请注意,引用不存在的键将返回 null

df_result = df.select(F.col('vals').getItem('C'))
df_result.show()



+-------+
|vals[C]|
+-------+
|   null|
|   null|
+-------+

相关用法


注:本文由纯净天空筛选整理自Isshin Inada大神的英文原创作品 PySpark Column | getItem method。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。