![](/img/trans.png)
[英]Use groupby in dataframe to perform data filtering and element-wise subtraction
[英]How can I perform element-wise subtraction in a RDD in Python
我有一個像這樣的 RDD:
rdd1 = sc.parallelize([1,0,1,1,1,0], [0,0,1,0,0,1])
我需要這樣的 output
[1,0,0,1,1,1]
所以逐元素減法,然后減去絕對值。 我仍然是 pyspark 的初學者。任何幫助將不勝感激。因為,我需要降低計算量,轉換為 dataframe 是不可取的。
在純 python 中,它將是:
a, b = [1, 0, 1, 1, 1, 0], [0, 0, 1, 0, 0, 1]
[x - y for x, y in zip(a, b)]
Out[2]: [1, 0, 0, 1, 1, -1]
如果你想在 pyspark 中實現相同的效果,這取決於你是使用列、行還是 arrays...這里是一種在列中使用數據的解決方案:
# based on above a and b
from pyspark.sql import functions as F
df = spark.createDataFrame(zip(a, b), ["a", "b"])
df.show()
+---+---+
| a| b|
+---+---+
| 1| 0|
| 0| 0|
| 1| 1|
| 1| 0|
| 1| 0|
| 0| 1|
+---+---+
df.withColumn("c", F.col("a") - F.col("b")).show()
+---+---+---+
| a| b| c|
+---+---+---+
| 1| 0| 1|
| 0| 0| 0|
| 1| 1| 0|
| 1| 0| 1|
| 1| 0| 1|
| 0| 1| -1|
+---+---+---+
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.