Pyspark 和 Python - 列不可迭代

我将 Python-3 与 Azure 数据块一起使用。

我有一个数据框。 'BodyJson' 列是一个 json 字符串,其中包含一个 'vmedwifi/'。我添加了“vmedwifi/”的常量字符串文字作为名为“email_type”的列。

我想找到带有“BodyJson”列的文本“vmedwifi/”的起始位置——所有列都在同一个数据框中。我的代码如下。

我在第二行代码中收到错误“列不可迭代”。对我做错了什么有任何想法吗?

# Weak logic to try and identify email addressess 
emailDf  = inputDf.select('BodyJson').where("BodyJson like('%vmedwifi%@%.%')").withColumn('email_type',lit('vmedwifi'))


b=emailDf.withColumn('BodyJson_Cutdown',substring(emailDf.BodyJson,expr('locate(emailDf.email_type,emailDf.BodyJson)'),20))



TypeError: Column is not iterable
---------------------------------------------------------------------------
TypeError                                 Traceback (most recent call last)
<command-536715104422314> in <module>()
     12 #emailDf1  = inputDf.select('BodyJson').where("BodyJson like('%@xxx.abc.uk%')")
     13 
---> 14 b=emailDf.withColumn('BodyJson_Cutdown',20))
     15 
     16 #inputDf.unpersist()
chen321123bin1 回答:Pyspark 和 Python - 列不可迭代

问题在于传递给 expr 的文字。

我决定以不同的方式解决这个问题。

本文链接:https://www.f2er.com/9880.html

大家都在问