这可能是一个非常基本的问题,因为我是初级火种。我已经读取了一个CSV文件,并试图应用一些吡火花函数,如过滤器,拆分或替换在它上。但我面临一个错误这是我的代码..。
emp_data = spark\
.read\
.format('csv')\
.option("inferSchema","true")\
.option("header","true")\
.load("/FileStore/tables/employee_earnings_report_2016-1.csv")
在读取文件之后,我应用了过滤器.这是运行良好的
import pyspark.sql.functions as f
df = emp_data.filter((f.col("POSTAL") == 2148) | (f.col("POSTAL") == 2125)).show(5)
+-----------------+-----------+-----+-------+----------+-------+------+-------------------------+--------------+------+------+
| NAME| REGULAR|RETRO| OTHER| OVERTIME|INJURED|DETAIL|QUINN/EDUCATION INCENTIVE|TOTAL EARNINGS|POSTAL|Gender|
+-----------------+-----------+-----+-------+----------+-------+------+-------------------------+--------------+------+------+
| Abbasi,Sophia| $18,249.83| NA| NA| NA| NA| NA| NA| $18,249.83| 2148| M|
|Abbruzzese,Angela| $5,000.90| NA| NA| NA| NA| NA| NA| $5,000.90| 2125| M|
| Abbruzzese,Donna| $621.90| NA| NA| NA| NA| NA| NA| $621.90| 2125| M|
| Abdelrahim,Maha| $1,181.60| NA| NA| NA| NA| NA| NA| $1,181.60| 2125| M|
| Abron,Wayne E.|$103,667.51| NA|$550.00|$13,696.60| NA| NA| NA| $117,914.11| 2125| M|
+-----------------+-----------+-----+-------+----------+-------+------+-------------------------+--------------+------+------+
接下来,我想在‘name’列上应用拆分函数,并提取名称的第一个索引.我是这样做的.
df_new = df.select(f.split(f.col("NAME"), ',')).show(3)
产生以下错误
AttributeError: 'NoneType' object has no attribute 'select'
如何解决此错误?
发布于 2021-09-12 05:49:34
这个问题是由于
df = emp_data.filter((f.col("POSTAL") == 2148) | (f.col("POSTAL") == 2125)).show(5)
在末尾添加.show(5)
将对象的类型从pyscemDataFrame更改为NoneType
。
因此,当您使用df_new = df.select(f.split(f.col("NAME"), ',')).show(3)
时,会得到错误AttributeError: 'NoneType' object has no attribute 'select'
。
要做到这一点,一个更好的方法是使用:
df = emp_data.filter((f.col("POSTAL") == 2148) | (f.col("POSTAL") == 2125))
df.show(5)
您还可以将display(df)
用于样式显示。
https://stackoverflow.com/questions/69148721
复制相似问题