【发布时间】:2021-09-21 10:32:23
【问题描述】:
如果列的行位于单独的 Dataframe 中,我正在尝试在我的 Spark Dataframe 中创建一个标志。
这是我的主要 Spark Dataframe (df_main)
+--------+
|main |
+--------+
|28asA017|
|03G12331|
|1567L044|
|02TGasd8|
|1asd3436|
|A1234567|
|B1234567|
+--------+
这是我的参考 (df_ref),这个参考中有数百行,所以我显然不能像 solution 或 this one 这样对它们进行硬编码
+--------+
|mask_vl |
+--------+
|A1234567|
|B1234567|
...
+--------+
通常,我会在 pandas 的数据框中执行以下操作:
df_main['is_inref'] = np.where(df_main['main'].isin(df_ref.mask_vl.values), "YES", "NO")
这样我就能得到这个
+--------+--------+
|main |is_inref|
+--------+--------+
|28asA017|NO |
|03G12331|NO |
|1567L044|NO |
|02TGasd8|NO |
|1asd3436|NO |
|A1234567|YES |
|B1234567|YES |
+--------+--------+
我试过下面的代码,但我不明白图片中的错误是什么意思。
df_main = df_main.withColumn('is_inref', "YES" if F.col('main').isin(df_ref) else "NO")
df_main.show(20, False)
【问题讨论】:
标签: python dataframe pyspark rdd data-wrangling