如何通过for循环迭代一列并获得pyspark值?

ovfsdjhp  于 2021-07-12  发布在  Spark
关注(0)|答案(4)|浏览(762)

我有一个Dataframe,我想进一步处理特定列的值。如何在我的代码pyspark中获取值

  1. for i in range(0,df.count()):
  2. df_year = df['year'][i]
  3. print(df_year)

我得到这样的输出

  1. Column<b'year'>
  2. Column<b'year'>

这是我的预期产出

  1. 2015
  2. 2016
fdbelqdn

fdbelqdn1#

  1. for row in df.rdd.collect():
  2. print(row['year'])
fivyi3re

fivyi3re2#

如果你只想要年份栏,

  1. for row in df.select("year").rdd.collect():
  2. print(row['year'])
rkkpypqq

rkkpypqq3#

你可以试试这个-

  1. >>> from pyspark import SparkContext
  2. >>> from pyspark.sql import SQLContext
  3. >>> sc = SparkContext.getOrCreate()
  4. >>> sql = SQLContext(sc)
  5. >>> df = sql.createDataFrame([(2015, 4), (2016, 5),(2017,6),(2018,7)], ["Year", "Month"])
  6. >>> df.show()
  7. +----+-----+
  8. |Year|Month|
  9. +----+-----+
  10. |2015| 4|
  11. |2016| 5|
  12. |2017| 6|
  13. |2018| 7|
  14. +----+-----+
  15. >>> [x.Year for x in df.select("Year").collect()]
  16. [2015, 2016, 2017, 2018]
展开查看全部
oxosxuxt

oxosxuxt4#

  1. for i in range(0,df.count()):
  2. df_year=df.collect()[i][1]
  3. print(df_year)

其中1是从零开始的列索引。

相关问题