显示单个火花列时,“列”对象不可调用

时间:2018-08-13 09:37:26

标签: python pandas dataframe pyspark

我是新的Spark用户,以前我来自熊猫背景。这是我的Spark数据框

In[75]:  spDF
Out[75]: DataFrame[customer_id: string, name: string]

当我show他们

In[75]:  spDF.show()
Out[75]:

+-----------+-----------+
|customer_id|       name|
+-----------+-----------+
|      25620| MCDonnalds|
|      25620|  STARBUCKS|
|      25620|        nan|
|      25620|        nan|
|      25620| MCDonnalds|
|      25620|        nan|
|      25620| MCDonnalds|
|      25620|DUNKINDONUT|
|      25620|   LOTTERIA|
|      25620|        nan|
|      25620| MCDonnalds|
|      25620|DUNKINDONUT|
|      25620|DUNKINDONUT|
|      25620|        nan|
|      25620|        nan|
|      25620|        nan|
|      25620|        nan|
|      25620|   LOTTERIA|
|      25620|   LOTTERIA|
|      25620|  STARBUCKS|
+-----------+-----------+
only showing top 20 rows

然后我尝试仅查询列

In[76]:  spDF['name']
Out[76]: Column<b'name'>

但是当我显示它们时,出现以下错误。

In[79]: spDF['name'].show()
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<ipython-input-79-f6676d5e5ca2> in <module>()
----> 1 spDF['name'].show()

TypeError: 'Column' object is not callable

任何人都有一个主意,这是什么错误?

2 个答案:

答案 0 :(得分:2)

尝试

所以spDF.select('colname')。show()

答案 1 :(得分:1)

你也可以试试:

import pyspark
from pyspark.sql import SparkSession

sc = pyspark.SparkContext('local[*]')
spark = SparkSession.builder.getOrCreate()
.
.
.
spDF.createOrReplaceTempView("space")
spark.sql("SELECT name FROM space").show()

前两行对于在本地机器上尝试此代码段的人来说是可选的。