我有一个要解析的数据帧"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()