我有两个数据帧命名-品牌名称和景点名称。在
数据帧1(品牌名称):-
+-------------+
|brand_stop[0]|
+-------------+
|TOASTMASTERS |
|USBORNE |
|ARBONNE |
|USBORNE |
|ARBONNE |
|ACADEMY |
|ARBONNE |
|USBORNE |
|USBORNE |
|PILLAR |
+-------------+
数据帧2:-(poi峎u name)
^{pr2}$我想检查dataframe 1的brand_stop列中的字符串是否存在于dataframe 2的Name列中。应该按行进行匹配,然后如果匹配成功,则应将该特定记录存储在新列中。在
我试着用加入:-在
from pyspark.sql.functions import udf, col
from pyspark.sql.types import BooleanType
contains = udf(lambda s, q: q in s, BooleanType())
like_with_python_udf = (poi_names.join(brand_names1)
.where(contains(col("Name"), col("brand_stop[0]")))
.select(col("Name")))
like_with_python_udf.show()
但这显示了一个错误
"AnalysisException: u'Detected cartesian product for INNER join between logical plans"
我是PySpark新手。请帮我拿这个。在
谢谢你
在这种情况下,您必须添加某种形式的索引和连接
scala代码如下:
Python代码:
^{pr2}$我要出局了:
++ |品牌停车| + + |演讲会| |厄斯本| |阿尔本| ++
相关问题 更多 >
编程相关推荐