jam*_*iet 36 python apache-spark-sql spark-dataframe
我有这个代码:
l = [('Alice', 1),('Jim',2),('Sandra',3)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df.withColumn('age2', df.age + 2).toPandas()
Run Code Online (Sandbox Code Playgroud)
工作正常,做它需要的东西.假设我只想显示前n行,然后调用toPandas()返回pandas数据帧.我该怎么做?我无法调用,take(n)因为它不会返回数据帧,因此我无法将其传递给toPandas().
换句话说,如何从数据帧中获取前n行并调用toPandas()结果数据帧?想不到这很难但我无法弄清楚.
我正在使用Spark 1.6.0.
Neo*_*Neo 54
你可以使用这个limit(n)功能:
l = [('Alice', 1),('Jim',2),('Sandra',3)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df.limit(2).withColumn('age2', df.age + 2).toPandas()
Run Code Online (Sandbox Code Playgroud)
要么:
l = [('Alice', 1),('Jim',2),('Sandra',3)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df.withColumn('age2', df.age + 2).limit(2).toPandas()
Run Code Online (Sandbox Code Playgroud)
Ant*_*pov 10
您可以使用head获取Spark DataFrame的第一行,然后创建Pandas DataFrame:
l = [('Alice', 1),('Jim',2),('Sandra',3)]
df = sqlContext.createDataFrame(l, ['name', 'age'])
df_pandas = pd.DataFrame(df.head(3), columns=df.columns)
In [4]: df_pandas
Out[4]:
name age
0 Alice 1
1 Jim 2
2 Sandra 3
Run Code Online (Sandbox Code Playgroud)