来自 pyspark.sql.dataframe.DataFrame 的 numpy 转换为字符串数组
numpy from pyspark.sql.dataframe.DataFrame convert to string array
我需要查询 pyspark.sql.dataframe.DataFrame 中的列。我希望从该列创建一个字符串数组。我正在使用 numpty 数组来实现这一点,但是我得到的结果是一个数组数组
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 值添加为字符串吗?
我尝试过的东西。
- 使用 asarray 而不是 array,如你所见,我得到了相同的结果。
- data_array = list(data_array),好吧,我得到了一个列表,但它不可用,因为它也包含所有元数据。
愿意接受建议和额外阅读,而不是完整的解决方案。
谢谢
post的力量。
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)
我需要查询 pyspark.sql.dataframe.DataFrame 中的列。我希望从该列创建一个字符串数组。我正在使用 numpty 数组来实现这一点,但是我得到的结果是一个数组数组
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 值添加为字符串吗?
我尝试过的东西。
- 使用 asarray 而不是 array,如你所见,我得到了相同的结果。
- data_array = list(data_array),好吧,我得到了一个列表,但它不可用,因为它也包含所有元数据。
愿意接受建议和额外阅读,而不是完整的解决方案。 谢谢
post的力量。
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)