当前位置: 首页 > 知识库问答 >
问题:

在pyspark中,我想把一列数据框中的值传递给一个函数,并对该列数据中的第五个值t进行操作

彭星津
2023-03-14

我在AWS上的EMR集群上使用pySpark V2,我试图将一个dataframe列传递给一个函数,并操作该列中的各个项

假设我有以下设置:

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行中包含的值进行测试,并根据找到的内容,将该值赋给一个新变量,或者对新变量进行其他操作

e. g.

myfunc(df.value)

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

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

共有1个答案

锺离韬
2023-03-14

谢谢你的链接。这很有帮助。这里有一个可能的答案

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
 类似资料:
  • 我有两个熊猫数据框 步骤1:根据df1中唯一的“val”在df2中创建列,如下所示: 步骤2:对于flag=1的行,AA_new将计算为var1(来自df2)*组“A”和val“AA”的df1的'cal1'值*组“A”和val“AA”的df1的'cal2'值,类似地,AB_new将计算为var1(来自df2)*组“A”和val“AB”的df1的'cal1'值*组“A”和val“AB”的df1的'c

  • 我有两个pyspark数据帧 DF1 : df2: 我想向df1添加一个列Location_Id,从df2获取匹配的Id,如下所示: 我如何才能做到这一点?

  • 问题内容: 我有两个数据框,第一个有1000行,看起来像: 该列具有不同的值,有时会重复,但通常大约有50个唯一值。 第二个数据框包含所有这50个唯一值(50行)以及与这些值关联的酒店: 我的目标是用第二个数据帧的列的相应值替换第一个数据帧的列中的值,或者用相应的值创建该列。当我尝试通过像 我有一个错误,即数据帧的大小不相等,因此无法进行比较 问题答案: 如果将索引设置为另一个df上的“组”列,则

  • 我有一个包含两列的数据框架(DF1) 和另一个像这样的数据帧(DF2) 我必须将DF2中的各个字符串值替换为它们在DF1中的相应值…例如,在操作之后,我应该取回这个数据框。 我尝试了多种方法,但似乎无法找到解决方案。

  • 问题内容: 我有2个数据框。 我想遍历每行,并检查每个名称是否在中。 如果名称在其中,结果应返回1,否则返回0: 谢谢。 问题答案: 采用 在数据框中显示结果 在系列对象中

  • 我有两个火花数据集,其中一个列的帐户和键,键列在数组的格式[key1, key2, key3...]和另一个数据集的两个列的帐户和键值是在json.帐户,{key:值,键,值...}。我需要更新第二个数据集中的值,如果键出现在第一个数据集中。 预期产出