我使用的是火花 2.4。
我在火花数据帧中有一个数组类型(字符串类型())列和一个字符串类型()列。我需要在数组类型(字符串类型())列中找到字符串类型()列的位置。
样本输入:
+---------------+---------+
|arrayCol |stringCol|
+---------------+---------+
|['a', 'b', 'c']|'b' |
+---------------+---------+
|['a', 'b', 'c']|'d' |
+---------------+---------+
样本输出:
+---------------+---------+-----+
|arrayCol |stringCol|Index|
+---------------+---------+-----+
|['a', 'b', 'c']|'b' |2 |
+---------------+---------+-----+
|['a', 'b', 'c']|'d' |null |
+---------------+---------+-----+
我试过了array_position但它不起作用,我得到了“列不可迭代”错误。
我也尝试过组合exr、变换和array_position,但我想知道是否有不需要使用exr的解决方案。
谢谢:)
使用< code>array_position函数尝试使用< code>expr。
示例:
df.show()
#+---------+---------+
#| arrayCol|stringCol|
#+---------+---------+
#|[a, b, c]| b|
#|[a, b, c]| d|
#+---------+---------+
from pyspark.sql.functions import *
df.withColumn("Index",expr('if(array_position(arrayCol,stringCol)=0,null,array_position(arrayCol,stringCol))')).\
show()
#+---------+---------+-----+
#| arrayCol|stringCol|Index|
#+---------+---------+-----+
#|[a, b, c]| b| 2|
#|[a, b, c]| d| null|
#+---------+---------+-----+
我有一个数据集DF,其中包括USER和DATETIME两列(列索引不在我的数据中。它是输出应该是什么样子)。DF中的行显示了每一分钟的活动。我想要的是创建并填充一个名为“index”的列。这个索引是显示等于或小于4分钟的活动。换句话说,如果第i行的DATETIME与其后面的第i 1行之间的差异小于或等于4分钟,则它们在同一个索引中(即在同一个活动中)。但是,如果这个差异大于4分钟,下一行(i 1)
问题内容: 我想用相邻列中的值替换一列中的空值,例如,如果我有 我希望它是: 尝试过 但是没用,它说值应该是浮点数,整数,长整数,字符串或字典 有任何想法吗? 问题答案: 最后找到一个替代方案:
我在数组列表(嵌套数组列表)中有一个数组列表,如下所示 现在我需要获取存在于arraylist的给定索引中的的实例并为其添加一个值。我使用了以下代码 但是它给了我一个错误 线程"main"java.lang.异常索引:0,大小:0 如何解决这个问题以及为什么会发生这种情况。 谢谢你
我正在尝试制作一个纸牌游戏,它有游戏类、纸牌类、玩家类、副牌类和手牌类。我想让它模拟现实生活,你从一副牌中抽5张牌到你手上 我让我的班级玩家将所有的卡片添加到一个叫做卡片的卡片组中。像这样: 它把它传递给我的班级甲板: 我在类手叫手创建了一个手数组列表: 如何将 5 个随机卡牌对象从我的套牌数组列表添加到我的手牌数组列表中?
我有一个包含3列的数据表,我想使用列投影的值创建一个新列。 应该如何从投影中选择值?--它应该选择前一年投影的3个具体值--如果您要为2020年创建一个新列,它应该从2021年、2022年和2023年选择值 我已经尝试了以下SQL: spark.sql(''从表中选择serial_number,pit_pd_proj为proj1,year,lead(pit_pd_proj,3)over(parti
我的熊猫数据框中有2列。 我想去掉可乐和可乐,用可乐代替。 基本上,我需要用cola和colb中的值填充colc。如果可乐中有一个楠,那么它会从可乐中拉出,如果可乐中有一个楠,它会从可乐中拉出。如果可乐和可乐中没有楠,它们应该总是相等的。 我将如何在熊猫身上实现这一点?