我将 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()