Nano Hash - криптовалюты, майнинг, программирование

pyspark делает два столбца из списка в один столбец

Это моя первая строка данных:

Row(params=['id=407439', 'a=something', 'b=something_else', 'c=anything', 'd='])

Мне нужны два столбца со значениями a и b.

Row(a='a=something', b='b=something_else')

or

Row(a='something', b='something_else')

Я нашел такой ответ: Как преобразовать DataFrame на один столбец, чтобы создать два новых столбца в pyspark? Но не сказано, как выбрать элемент по какому-то строковому шаблону вместо индекса.

Я не знаю, имеет ли это значение, но я получил свою первую строку списка с:

some_data.withColumn('params', split(string, '&'))
28.04.2017

Ответы:


1

Я думаю, что это должно работать:

 some_data.withColumn('a', col('params').startswith('a='))
30.04.2017

2

В конце концов, это сработало для меня (но, возможно, другое решение лучше):

def get_param(string): #whole not splitted string
try:
    return dict(item.split('=') for item in string.split('&'))['a']
except:
    return string


from pyspark.sql.types import *
get_param_udf = udf(get_param, StringType())

new_data = some_data.withColumn('a', get_param_udf('string'))

И то же самое сделано для 'b'

04.05.2017
Новые материалы

Кластеризация: более глубокий взгляд
Кластеризация — это метод обучения без учителя, в котором мы пытаемся найти группы в наборе данных на основе некоторых известных или неизвестных свойств, которые могут существовать. Независимо от..

Как написать эффективное резюме
Предложения по дизайну и макету, чтобы представить себя профессионально Вам не позвонили на собеседование после того, как вы несколько раз подали заявку на работу своей мечты? У вас может..

Частный метод Python: улучшение инкапсуляции и безопасности
Введение Python — универсальный и мощный язык программирования, известный своей простотой и удобством использования. Одной из ключевых особенностей, отличающих Python от других языков, является..

Как я автоматизирую тестирование с помощью Jest
Шутка для победы, когда дело касается автоматизации тестирования Одной очень важной частью разработки программного обеспечения является автоматизация тестирования, поскольку она создает..

Работа с векторными символическими архитектурами, часть 4 (искусственный интеллект)
Hyperseed: неконтролируемое обучение с векторными символическими архитектурами (arXiv) Автор: Евгений Осипов , Сачин Кахавала , Диланта Хапутантри , Тимал Кемпития , Дасвин Де Сильва ,..

Понимание расстояния Вассерштейна: мощная метрика в машинном обучении
В обширной области машинного обучения часто возникает необходимость сравнивать и измерять различия между распределениями вероятностей. Традиционные метрики расстояния, такие как евклидово..

Обеспечение масштабируемости LLM: облачный анализ с помощью AWS Fargate и Copilot
В динамичной области искусственного интеллекта все большее распространение получают модели больших языков (LLM). Они жизненно важны для различных приложений, таких как интеллектуальные..