當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。