PySpark: TypeError: 'str' object is not callable in dataframe operations
PySpark: TypeError: 'str' object is not callable in dataframe operations
我正在循环读取文件夹中的文件并从中创建数据帧。
但是,我收到了这个奇怪的错误 TypeError: 'str' object is not callable
。
请在此处找到代码:
for yr in range (2014,2018):
cat_bank_yr = sqlCtx.read.csv(cat_bank_path+str(yr)+'_'+h1+'bank.csv000',sep='|',schema=schema)
cat_bank_yr=cat_bank_yr.withColumn("cat_ledger",trim(lower(col("cat_ledger"))))
cat_bank_yr=cat_bank_yr.withColumn("category",trim(lower(col("category"))))
代码运行一次迭代,然后在第
行停止
cat_bank_yr=cat_bank_yr.withColumn("cat_ledger",trim(lower(col("cat_ledger"))))
出现上述错误。
有人能帮忙吗?
您的代码看起来不错 - 如果错误确实发生在您所说的行中,您可能不小心用字符串覆盖了 PySpark 函数之一。
要检查这一点,请将以下行放在 for 循环的正上方,看看代码现在运行是否没有错误:
from pyspark.sql.functions import col, trim, lower
或者,仔细检查代码是否真的停在您所说的行中,或者检查 col、trim、lower 是否符合您的预期,方法是这样调用它们:
col
应该return
function pyspark.sql.functions._create_function.._(col)
在导入部分使用:
from pyspark.sql import functions as F
然后在使用 col
的代码中使用 F.col
,这样您的代码将是:
# on top/header part of code
from pyspark.sql import functions as F
for yr in range (2014,2018):
cat_bank_yr = sqlCtx.read.csv(cat_bank_path+str(yr)+'_'+h1+'bank.csv000',sep='|',schema=schema)
cat_bank_yr=cat_bank_yr.withColumn("cat_ledger",trim(lower(F.col("cat_ledger"))))
cat_bank_yr=cat_bank_yr.withColumn("category",trim(lower(F.col("category"))))
希望这会奏效。祝你好运。
我正在循环读取文件夹中的文件并从中创建数据帧。
但是,我收到了这个奇怪的错误 TypeError: 'str' object is not callable
。
请在此处找到代码:
for yr in range (2014,2018):
cat_bank_yr = sqlCtx.read.csv(cat_bank_path+str(yr)+'_'+h1+'bank.csv000',sep='|',schema=schema)
cat_bank_yr=cat_bank_yr.withColumn("cat_ledger",trim(lower(col("cat_ledger"))))
cat_bank_yr=cat_bank_yr.withColumn("category",trim(lower(col("category"))))
代码运行一次迭代,然后在第
行停止cat_bank_yr=cat_bank_yr.withColumn("cat_ledger",trim(lower(col("cat_ledger"))))
出现上述错误。
有人能帮忙吗?
您的代码看起来不错 - 如果错误确实发生在您所说的行中,您可能不小心用字符串覆盖了 PySpark 函数之一。
要检查这一点,请将以下行放在 for 循环的正上方,看看代码现在运行是否没有错误:
from pyspark.sql.functions import col, trim, lower
或者,仔细检查代码是否真的停在您所说的行中,或者检查 col、trim、lower 是否符合您的预期,方法是这样调用它们:
col
应该return
function pyspark.sql.functions._create_function.._(col)
在导入部分使用:
from pyspark.sql import functions as F
然后在使用 col
的代码中使用 F.col
,这样您的代码将是:
# on top/header part of code
from pyspark.sql import functions as F
for yr in range (2014,2018):
cat_bank_yr = sqlCtx.read.csv(cat_bank_path+str(yr)+'_'+h1+'bank.csv000',sep='|',schema=schema)
cat_bank_yr=cat_bank_yr.withColumn("cat_ledger",trim(lower(F.col("cat_ledger"))))
cat_bank_yr=cat_bank_yr.withColumn("category",trim(lower(F.col("category"))))
希望这会奏效。祝你好运。