首页 > 解决方案 > 来自 pyspark.sql.dataframe.DataFrame 的 numpy 转换为字符串数组

问题描述

我需要查询 pyspark.sql.dataframe.DataFrame 中的列。我希望从该列创建一个字符串数组。我正在使用 numty 数组来实现这一点,但是我得到的结果是一个数组数组

import numpy as np
df = spark.read.load(parquetfiles/part-00000-e7dad738-8895-45e8-9926-39c9d677b999-c000.snappy.parquet', format='parquet')

    data_array = np.asarray(df.select('name').collect())
    print(type(data_array),data_array)
    
    for x in data_array:
        str = x[0]
        print(type(x))

我从第一次打印中得到的输出是:

<class 'numpy.ndarray'> [['London']
 ['New York']
 ['Paris']
 ['Rome']
 ['Berlin']] 

从第二张打印我得到

<class 'numpy.ndarray'>

所以我的问题是:是否可以将这些值作为字符串数组获取,或者如果失败,我可以创建一个动态,将我的 for 循环中的 str 值添加为字符串?

我尝试过的事情。

接受建议和额外阅读,而不是完整的解决方案。谢谢。

标签: arrayspysparkazure-synapse

解决方案


帖子的力量。

import numpy as np
df = spark.read.load(parquetfiles/part-00000-e7dad738-8895-45e8-9926-39c9d677b999-c000.snappy.parquet', format='parquet')

data_array = np.asarray(df.select('name').collect())
cases = []    
    
for x in data_array:
   str = x[0]
   cases.append(str)

推荐阅读