Блоки данных: как преобразовать значения строк в тип массива - PullRequest
0 голосов
/ 07 ноября 2019

предположим, у меня есть следующий фрейм данных col1 abc

Я хотел бы преобразовать значения в переменную arrayType ['a', 'b', 'c']

любая идея

1 Ответ

0 голосов
/ 08 ноября 2019

Я предположил, что у вас есть фрейм данных pandas или pyspark в блоках данных, как показано ниже.

import pandas as pd

# pandas dataframe
df = pd.DataFrame({'Col1': ['a', 'b', 'c']})

# pyspark dataframe in databricks
sdf = spark.createDataFrame(df)

Так что просто для pandas dataframe выберите столбец Col1 для преобразования в массив,код как показано ниже.

pandas_array = df['Col1'].array
# <PandasArray>
# ['a', 'b', 'c']
# Length: 3, dtype: object
py_list = list(pandas_array)
# ['a', 'b', 'c']

Или вы хотите преобразовать столбец Col1 фрейма данных PySpark в массив, как показано ниже:

rows = sdf.select(f.collect_list('Col1').alias('arr')).collect()
row = rows[0]
arr = row['arr']

enter image description here

Конечно, вы также можете преобразовать фрейм данных PySpark в фрейм данных pandas, а затем выполнить первое преобразование кода.

df2 = sdf.toPandas()
pd_arr = df2['Col1'].array
...