我在和pyspark一起工作。我加载了一个.csv
文件并将其转换为行。
之后,我选择一些列并将它们放入NumericalElementsRDD
:
NumericalElementsRDD = elementsRDD.map(lambda p: Row(g1=int(p[30]), g2=int(p[31]), g3=int(p[32])))
问题是我需要创建另一个列,我们称之为success_fail
。背后的逻辑是:success_fail values 1 if p[32] >= 10 else 0
我试着在表达式中插入另一个lambda元素rdd.map,但没用。在
你能帮我完成这个任务吗?在
如果你想在RDD中构建这个,你可以试试这个
使用数据帧或数据集而不是行类型可以提供更好的性能。在
建造这个很容易。在
看,您创建了一个行的RDD。把它转换成数据帧很容易。在
在此之后,您可以使用函数
withColumn()
,此函数将创建或更新现有列,请参见here文档。在那么,如何更新?使用此命令:
^{pr2}$您可以看到,我使用了函数
when()
,它的工作原理与数据帧的if-seehere类似。在对于python,如果将RDD转换为行的RDD。最好使用数据帧来获得更快的响应。在
相关问题 更多 >
编程相关推荐