我有这个代码:

l = [('Alice', 1),('Jim',2),('Sandra',3)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df.withColumn('age2', df.age + 2).toPandas()

工作正常,做它需要的。假设我只想显示前 n 行,然后调用 toPandas() 返回一个 Pandas 数据帧。我该怎么做?我无法调用 take(n) ,因为它不返回数据帧,因此我无法将其传递给 toPandas()

换句话说,如何从数据帧中取出前 n 行并在结果数据帧上调用 toPandas()?不能认为这很难,但我想不通。

我正在使用 Spark 1.6.0。

最佳答案

您可以使用 limit(n) 函数:

l = [('Alice', 1),('Jim',2),('Sandra',3)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df.limit(2).withColumn('age2', df.age + 2).toPandas()

要么:
l = [('Alice', 1),('Jim',2),('Sandra',3)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df.withColumn('age2', df.age + 2).limit(2).toPandas()

关于python - 从 Spark 数据框中取出 n 行并传递给 toPandas(),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40537782/

10-16 21:38