在 PySpark 数据框中访问特定项

10

如何在PySpark数据框中访问某一列的特定索引处的值,例如我想要访问名为“Category”的列中索引5处的值。在PySpark语法中如何实现?


你是否已经添加了索引列? - mayank agrawal
是的,我有。@mayankagrawal。 - moirK
2个回答

11

类似这样的内容,

value = df.where(df.index == 5).select('Category').collect()[0]['Category']
                                         #assuming 'index' is index column

2
谢谢@mayank agrawal,但如果我的数据没有索引列怎么办? - moirK
3
你需要找到一些标识列作为筛选的基础。Pyspark提供了添加索引的方法,但你不能确定你想要的第五个索引是否与Spark分配的相同。 - mayank agrawal

0

@mayank的回答很好,如果索引列不存在,可以继续执行。

将数据保存在csv文件中,命名为demo_date.csv:

job number,from_date,to_date
1,01-10-2010,31-12-9999
2,02-10-2010,31-12-9999
3,03-10-2010,31-12-9999

代码:

from pyspark.sql import SparkSession
from pyspark.sql.functions import col,lit

spark = SparkSession.builder.appName('Basics').getOrCreate()
df = spark.read.csv('demo_date.csv', header=True)
#df.show()

val = df.where(col('job number') == lit(2)).select('job number').collect()[0]['job number']

print(val)

对我来说以上方法有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接