假设我有以下数据框 col1 一种 b c
我想将值转换为arrayType变量 ['a','b','c']
有什么主意吗?
我认为您的数据块中的数据帧为pandas
或pyspark
,如下所示。
import pandas as pd
# pandas dataframe
df = pd.DataFrame({'Col1': ['a','b','c']})
# pyspark dataframe in databricks
sdf = spark.createDataFrame(df)
因此,仅对于pandas数据框选择Col1
列即可转换为数组,代码如下。
pandas_array = df['Col1'].array
# <PandasArray>
# ['a','c']
# Length: 3,dtype: object
py_list = list(pandas_array)
# ['a','c']
或者您要将PySpark数据框的Col1
列转换为数组,如下代码。
rows = sdf.select(f.collect_list('Col1').alias('arr')).collect()
row = rows[0]
arr = row['arr']
当然,您还可以将PySpark数据帧转换为pandas数据帧,然后进行第一次代码转换。
df2 = sdf.toPandas()
pd_arr = df2['Col1'].array