Size: a a a

2020 April 03

АС

Артур Семенов in Data Engineers
в сторону какой функции смотреть
источник

АС

Артур Семенов in Data Engineers
update: Преобразовал текстовик в json — > в dataFrame (получился key, value), теперь нужно сделать как в sql, только для 1 строки в df искать все значения(word) из словаря:
{"word": "abandons", "value": "-2"}
{"word": "abducted", "value": "-2"}
{"word": "abduction", "value": "-2"}
{"word": "abductions", "value": "-2"}
и если есть совпадения - то в новый(отдельный столбец делать сумму value)
C помощью какой функции можно это сделать? Или есть более простой способ это реализовать, чем мой
источник

АЖ

Андрей Жуков in Data Engineers
Да они осатанели!
источник

АЖ

Андрей Жуков in Data Engineers
Куда там в нетологию писать, чтоб они СММ разогнали?
источник

A

Alex in Data Engineers
Артур Семенов
привет, есть таблица, в которой есть поле с тектом (ранее это был большой json), также есть тхт-файл, содержание котрого "Слово - цифра", как проверить наличие слов из текстового файла в поле текст из json'a и вывести в отдельный столблец сумму цифр?
проверить по строгому совпадению слова ?
источник

АС

Артур Семенов in Data Engineers
как для 1 строки проверить проверить весь список слов и суметь сохранить сумму для этой строки в новый столбец
источник

A

Alex in Data Engineers
если да - то возможно следущая идея дурацкая, но она заключается в том, что первый DataFrame с текстовым полем модифицировать в DF где текст поля будет разбит на отдельные слова и каждое слово будет представлено отдельным рядком. А потом по словам сделать JOIN между первым и вторым DF и затем в результуючем DF сделать сумму цифр
источник

АС

Артур Семенов in Data Engineers
думаю не совсем удобно, т.к. слов может быть и 20 и 100 и 400, например так:
есть текст "слово1 слово2 слово3 текст машина утка"
есть справочник:
машина 1
утка 3
слово1 10
и по конкретно этй строке я хочу получить вот так:
слово1 слово2 слово3 текст машина утка ———-  (10+3+1) 14
слово1 слово2 слово3 текст машина метла  ———-  (10+1) 11
источник

GT

Gennady Timofeev in Data Engineers
Артур Семенов
думаю не совсем удобно, т.к. слов может быть и 20 и 100 и 400, например так:
есть текст "слово1 слово2 слово3 текст машина утка"
есть справочник:
машина 1
утка 3
слово1 10
и по конкретно этй строке я хочу получить вот так:
слово1 слово2 слово3 текст машина утка ———-  (10+3+1) 14
слово1 слово2 слово3 текст машина метла  ———-  (10+1) 11
Юдф можно написать, а текстовик в мапу превратить, если небольшой. В юдф бегать по массиву слов и проверять их наличие в мапе, при наличии - прибавлять к сумме значение.
источник

АС

Артур Семенов in Data Engineers
а без udf?
источник

АС

Артур Семенов in Data Engineers
только с pyspark.sql.functions
источник

GT

Gennady Timofeev in Data Engineers
pyspark.sql.functions.udf 🌝
источник

A

Alex in Data Engineers
Артур Семенов
думаю не совсем удобно, т.к. слов может быть и 20 и 100 и 400, например так:
есть текст "слово1 слово2 слово3 текст машина утка"
есть справочник:
машина 1
утка 3
слово1 10
и по конкретно этй строке я хочу получить вот так:
слово1 слово2 слово3 текст машина утка ———-  (10+3+1) 14
слово1 слово2 слово3 текст машина метла  ———-  (10+1) 11
Используйте тогда Spark и слов может быть хоть триллион тогда, если кластер соответствующий найдете
источник

АС

Артур Семенов in Data Engineers
Gennady Timofeev
pyspark.sql.functions.udf 🌝
udf нельзя (так сказано в задании)
источник

D

Dasha in Data Engineers
Андрей Жуков
%sql = %spark.sql
Спасибо, попробую поправить
источник

A

Alex in Data Engineers
Артур Семенов
думаю не совсем удобно, т.к. слов может быть и 20 и 100 и 400, например так:
есть текст "слово1 слово2 слово3 текст машина утка"
есть справочник:
машина 1
утка 3
слово1 10
и по конкретно этй строке я хочу получить вот так:
слово1 слово2 слово3 текст машина утка ———-  (10+3+1) 14
слово1 слово2 слово3 текст машина метла  ———-  (10+1) 11
Ну мой алгоритм с разбивкой на слова — точно так и сработает как вам нужно - join на двух DF, а потом сумма по результирующему DF в группах.
источник

GT

Gennady Timofeev in Data Engineers
Артур Семенов
udf нельзя (так сказано в задании)
Можете массив слов разобрать в отдельные записи (explode), после чего заджойнить и подсчитать сумму
источник

АС

Артур Семенов in Data Engineers
как джойнить то? если поля общего нет, 1дф - полноценная таблица, 2дф - просто справочник словарь
источник

A

Alex in Data Engineers
джойнить по словам
источник

A

Alex in Data Engineers
перечитайте внимательно то что я вам писал с самого начала
источник