将行数组转换为pyspark中的字符串数组

时间:2019-02-19 07:31:33

标签: python-2.7 pyspark apache-spark-sql pyspark-sql

我有一个包含2列的数据框,通过执行 df.collect(),我进入了数组下方。

array = [Row(name=u'Alice', age=10), Row(name=u'Bob', age=15)]

现在,我想获得如下输出数组。

new_array = ['Alice', 'Bob']

任何人都可以让我知道如何使用pyspark提取上述输出。任何帮助将不胜感激。

谢谢

2 个答案:

答案 0 :(得分:0)

我在df中看到两列名称和年龄。现在,您只希望显示name列。

您可以按以下方式选择它:

df.select("name").show()

这只会显示您的姓名。

提示:另外,您使用df.show()而不是df.collect()。这将以表格形式显示给您,而不是以row(...)

答案 1 :(得分:0)

# Creating the base dataframe.
values = [('Alice',10),('Bob',15)]
df = sqlContext.createDataFrame(values,['name','age'])
df.show()
    +-----+---+
    | name|age|
    +-----+---+
    |Alice| 10|
    |  Bob| 15|
    +-----+---+

df.collect()
    [Row(name='Alice', age=10), Row(name='Bob', age=15)]

# Use list comprehensions to create a list.
new_list = [row.name for row in df.collect()]
print(new_list)
    ['Alice', 'Bob']