Databricks:如何将行的值转换为数组类型

假设我有以下数据框 col1 一种 b c

我想将值转换为arrayType变量 ['a','b','c']

有什么主意吗?

WGW19660115 回答:Databricks:如何将行的值转换为数组类型

我认为您的数据块中的数据帧为pandaspyspark,如下所示。

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']

enter image description here

当然,您还可以将PySpark数据帧转换为pandas数据帧,然后进行第一次代码转换。

df2 = sdf.toPandas()
pd_arr = df2['Col1'].array
本文链接:https://www.f2er.com/3143421.html

大家都在问