У меня есть 2 фрейма данных pyspark, после некоторых манипуляций, состоящих из 1 столбца каждый, но оба имеют разную длину.dataframe 1 - это имя ингредиента, dataframe 2 содержит ряды длинных строк ингредиентов.
DATAFRAME 1:
ingcomb.show(10,truncate=False)
+---------------------------------+
|products |
+---------------------------------+
|rebel crunch granola |
|creamed honey |
|mild cheddar with onions & chives|
|berry medley |
|sweet relish made with sea salt |
|spanish peanuts |
|stir fry seasoning mix |
|swiss all natural cheese |
|yellow corn meal |
|shredded wheat |
+---------------------------------+
only showing top 10 rows
DATAFRAME 2:
reging.show(10, truncate=30)
+------------------------------+
| ingredients|
+------------------------------+
|apple bean cookie fruit kid...|
|bake bastille day bon appét...|
|dairy fennel gourmet new yo...|
|bon appétit dairy free dinn...|
|bake bon appétit california...|
|bacon basil bon appétit foo...|
|asparagus boil bon appétit ...|
|cocktail party egg fruit go...|
|beef ginger gourmet quick &...|
|dairy free gourmet ham lunc...|
+------------------------------+
only showing top 10 rows
Мне нужносоздайте цикл (любые другие предложения тоже приветствуются!), чтобы циклически проходить через фрейм данных 1 и сравнивать значения со строками фрейма данных через «лайк» и давать мне общее количество совпадений.
Желаемый результат:
+--------------------+-----+
| ingredients|count|
+--------------------+-----+
|rebel crunch granola| 183|
|creamed honey | 87|
|berry medley | 67|
|spanish peanuts | 10|
+--------------------+-----+
Я знаю, что работает следующий код:
reging.filter("ingredients like '%sugar%'").count()
и пытался реализовать что-то вроде
for i in ingcomb:
x = reging.select("ingredients").filter("ingredients like '%i%'").count()
Но я не могу заставить pyspark рассматривать 'i' как значение из ingcomb вместо символа i.
Я пробовал решения из Spark. Сравнивает два кадра данных и находит количество совпадений , но, к сожалению,они не работают.Я запускаю это в GCP и получаю сообщение об ошибке при попытке запустить toPandas - из-за разрешений не могу установить pandas.