【发布时间】:2020-02-04 16:08:42
【问题描述】:
我有两个数据帧 ddf_1 和 ddf_2 共享一个字符串 ID 的公共列。我的目标是在 ddf_1 中创建一个新的布尔 is_fine 列,如果 ID 包含在 ddf_1 和 ddf_2 中,则该列包含 True,如果 ID 不包含在 ddf_1 和 ddf_2 中,则包含 False。
考虑这个示例数据:
#### test
#example data
data_1 = {
'fruits': ["apples", "banana", "cherry"],
'myid': ['1-12', '2-12', '3-13'],
'meat': ["pig", "cow", "chicken"]}
data_2 = {
'furniture': ["table", "chair", "lamp"],
'myid': ['1-12', '0-11', '2-12'],
'clothing': ["pants", "shoes", "socks"]}
df_1 = pd.DataFrame(data_1)
ddf_1 = spark.createDataFrame(df_1)
df_2 = pd.DataFrame(data_2)
ddf_2 = spark.createDataFrame(df_2)
我想象一个类似这样的函数:
def func(df_1, df_2, column_1, column_2):
if df_1.column_1 != df_2.column_2:
return df_1.withColumn('is_fact', False)
else:
return df_1.withColumn('is_fact', True)
return df_1
所需的输出应如下所示:
【问题讨论】:
-
到底是什么问题?你有没有尝试过,做过任何研究?请参阅:How to Ask、meta.stackoverflow.com/questions/261592/…。
标签: python join pyspark comparison conditional-statements