У меня есть фрейм данных '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')\d\d:\d\d:\d\d(?=('}))", 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 больше не является фреймом данных, которым я могу манипулировать?
Вместо .show () я пытаюсь .toDF () и получаю
u"requirement failed: The number of columns doesn't
match.\nOld column names (4): _c0, _c1, value, time\nNew
column names (0):
И .collect () возвращает строки.
Я просто хочу вернуть еще один фрейм данных.