在 pyspark 中,我想将值的数据帧列传递给函数并在该数据列中操作说,第 5 个值

Posted

技术标签:

【中文标题】在 pyspark 中,我想将值的数据帧列传递给函数并在该数据列中操作说,第 5 个值【英文标题】:In pyspark I want to pass a dataframe column of values to a function and manipulate say, t the 5th value, in that columns of data 【发布时间】:2020-02-14 11:38:09 【问题描述】:

我在 AWS 上的 EMR 集群上使用 pySpark V2,我正在尝试将数据框列传递给函数并操作列中的各个项目

假设我有以下设置:

mylist = [x for x in range(0, 10)]
df=spark.createDataFrame(mylist,IntegerType())
df.show()

+-----+
|value|
+-----+
|    0|
|    1|
|    2|
|    3|
|    4|
|    5|
|    6|
|    7|
|    8|
|    9|
+-----+

我想要一个函数来执行测试,比如数据列第 5 行中包含的值,根据它找到的值,将该值分配给一个新变量,并可能对新变量进行一些其他操作

例如

myfunc(df.value)

def myfunc(df_col):
#
#   In psuedocode:
#   x = value in row 5 of the data
#   if x = whatever:
#       do something with x
#

谁能帮帮我。只是似乎遇到了心理障碍

【问题讨论】:

可能会有所帮助:***.com/questions/35243744/… 【参考方案1】:

感谢您提供的链接。这很有帮助。这是一个可能的答案

from pyspark.sql.types import *
mylist = [x for x in range(0, 10)]
df=spark.createDataFrame(mylist,IntegerType())
df.show()
rn=df.collect()[4]
x=rn.value
if(x == 4):
  print("fifth row value = ", str(x))
+-----+
|value|
+-----+
|    0|
|    1|
|    2|
|    3|
|    4|
|    5|
|    6|
|    7|
|    8|
|    9|
+-----+

fifth row value =  4

【讨论】:

以上是关于在 pyspark 中,我想将值的数据帧列传递给函数并在该数据列中操作说,第 5 个值的主要内容,如果未能解决你的问题,请参考以下文章

Pyspark - 将数据帧写入 2 个不同的 csv 文件

如何将多个数据框列传递给函数[重复]

如何将数据框列传递给scala函数

where子句值的pyspark数据帧计数等于

通过 URL 将几列传递给 orderBy 方法

如何从 BigQuery 读取分区表到 Spark 数据帧(在 PySpark 中)