Как создать новый столбец или обновить столбец внутри кадра данных?Python

Программы на Python
Anonymous
Как создать новый столбец или обновить столбец внутри кадра данных?

Сообщение Anonymous »

Доброе утро всем!
Сегодня у меня вопрос, и я не знаю, как его ответить.
Имея фрейм данных, я нужно создавать столбцы динамически, и эти столбцы будут содержать набор проверок, которые мне нужно выполнить, например: проверить количество символов ОС, посмотреть, есть ли странные символы внутри поля описания (например, разрывы линий) и т. д.
Наличие следующего списка:

Код: Выделить всё

raw/ingest_date=20240918/eventos/
raw/ingest_date=20240918/llamadas/
raw/ingest_date=20240918/campanhas/
raw/ingest_date=20240918/miembros/
raw/ingest_date=20240918/objetivos/
У меня есть этот фрейм данных, использующий:

Код: Выделить всё

data_T =[(folder, folder.split('/')[-2]) for folder in subfolders]
df_result = spark.createDataFrame(data_T , ["s3_prefix", "table_name"])
выход:

Код: Выделить всё

s3_prefix                            | table_name
------------------------------------------------------
raw/ingest_date=20240918/eventos/    | eventos
raw/ingest_date=20240918/llamadas/   | llamadas
raw/ingest_date=20240918/campanhas/  | campanhas
raw/ingest_date=20240918/miembros/   | miembros
Теперь я выполню цикл по этому фрейму данных, просмотрев каждый s3_prefix, чтобы получить информацию о файлах паркета, которые хранятся внутри.

Код: Выделить всё

for elem in df_result.collect():
s3_path = f"s3://{bucket_name}/{elem['s3_prefix']}/*.parquet"
ing_df = spark.read.parquet(s3_path)

ing_df = ing_df.select(F.length('ID').alias('length_ID'))

ing_df.show(1)
вывод

Код: Выделить всё

eventos
+---------+
|length_ID|
+---------+
|       17|
+---------+
only showing top 1 row

------------------------------
llamadas
+---------+
|length_ID|
+---------+
|       18|
+---------+
...
...
...
И внутри этого "for" я буду устанавливать свои проверки, и для каждой проверки должен быть столбец, который будет содержать результат для каждой строки, например:

Код: Выделить всё

s3_prefix                            | table_name   | id_length |  strange_character  | id_strange character        |
-------------------------------------|--------------|-----------|---------------------|-----------------------------|
raw/ingest_date=20240918/eventos/    | eventos      |   17      |        YES          | [idxxxxxxx3,idxxxxx23]      |
raw/ingest_date=20240918/llamadas/   | llamadas     |   18      |        NO           |                             |
raw/ingest_date=20240918/campanhas/  | campanhas    |   20      |        NO           |                             |
raw/ingest_date=20240918/miembros/   | miembros     |   30      |        YES          | [idxxxsssxs10,idxsdas2200]  |
Может ли кто-нибудь помочь мне создать этот новый фрейм данных и как я могу использовать регулярное выражение для просмотра поля описания, если внутри поля есть линия разрыва.
Большое спасибо
С уважением

Подробнее здесь: https://stackoverflow.com/questions/790 ... -dataframe

Вернуться в «Python»