【发布时间】:2017-09-07 02:27:54
【问题描述】:
我想在 pyspark 中的 2 个数据帧之间执行减法运算。挑战是我必须在减去数据框时忽略一些列。但最终数据框应该包含所有列,包括被忽略的列。
这是一个例子:
userLeft = sc.parallelize([
Row(id=u'1',
first_name=u'Steve',
last_name=u'Kent',
email=u's.kent@email.com',
date1=u'2017-02-08'),
Row(id=u'2',
first_name=u'Margaret',
last_name=u'Peace',
email=u'marge.peace@email.com',
date1=u'2017-02-09'),
Row(id=u'3',
first_name=None,
last_name=u'hh',
email=u'marge.hh@email.com',
date1=u'2017-02-10')
]).toDF()
userRight = sc.parallelize([
Row(id=u'2',
first_name=u'Margaret',
last_name=u'Peace',
email=u'marge.peace@email.com',
date1=u'2017-02-11'),
Row(id=u'3',
first_name=None,
last_name=u'hh',
email=u'marge.hh@email.com',
date1=u'2017-02-12')
]).toDF()
预期:
ActiveDF = userLeft.subtract(userRight) ||| Ignore "date1" column while subtracting.
最终结果应该是这样的,包括“date1”列。
+----------+--------------------+----------+---+---------+
| date1| email|first_name| id|last_name|
+----------+--------------------+----------+---+---------+
|2017-02-08| s.kent@email.com| Steve| 1| Kent|
+----------+--------------------+----------+---+---------+
【问题讨论】:
标签: apache-spark pyspark spark-dataframe