Pyspark withColumn Not Returning Dataframe



我有一个要解析的数据帧"df"。

from pyspark.sql.functions import regexp_extract, trim, lit 
df2 = df.withColumn("value", regexp_extract("_c0", "(? 
<=value':s)d+", 0))
.withColumn("time", regexp_extract("_c1", "(? 
<=time':su')dd:dd:dd(?=('}))", 0))
.show(truncate=False)

它返回

+-------------+----------------------+-----+--------+
|_c0          |_c1                   |value|time    |
+-------------+----------------------+-----+--------+
|{u'value': 76| u'time': u'00:36:32'}|76   |00:36:32|
|{u'value': 77| u'time': u'00:36:42'}|77   |00:36:42|
|{u'value': 76| u'time': u'00:36:47'}|76   |00:36:47|
|{u'value': 77| u'time': u'00:36:57'}|77   |00:36:57|
|{u'value': 78| u'time': u'00:37:02'}|78   |00:37:02|
|{u'value': 77| u'time': u'00:37:07'}|77   |00:37:07|

当我尝试对df2进行更多操作时,我得到了

'NoneType' object has no attribute 'show'

为什么df2不再是我可以操作的数据帧?

我尝试.toDF((并获得,而不是.show((

u"requirement failed: The number of columns doesn't 
match.nOld column names (4): _c0, _c1, value, timenNew 
column names (0): 

collect((返回行
我只想返回另一个数据帧。

您在创建df2数据帧时执行.show((操作,这就是df2不再是数据帧的原因。

创建没有.show()操作的df2数据帧:

>>> df2 = df.withColumn("value", regexp_extract("_c0", "(? 
<=value':s)d+", 0))
.withColumn("time", regexp_extract("_c1", "(? 
<=time':su')dd:dd:dd(?=('}))", 0))

现在在df2数据帧上执行.show()

>>> df2.show()

相关内容

  • 没有找到相关文章