Код: Выделить всё
>>> X = spark.createDataFrame([[1,2], [3,4]], ['a', 'b'])
>>> schema_new = X.schema.add('id_col', LongType(), False)
>>> _X = X.rdd.zipWithIndex().map(lambda l: list(l[0]) + [l[1]]).toDF(schema_new)
Код: Выделить всё
>>> X.columns
['a', 'b', 'id_col']
Код: Выделить всё
>>> X.show()
+---+---+
| a| b|
+---+---+
| 1| 2|
| 3| 4|
+---+---+
- с помощью методов copy и deepcopy из модуля copy
- просто с помощью _X = X
Методы копирования завершились неудачно и вернули
Код: Выделить всё
RecursionError: maximum recursion depth exceeded
Код: Выделить всё
>>> _X = X
>>> id(_X) == id(X)
True
Таким образом, мой вопрос на самом деле двоякий
- как изменить внешнюю схему (то есть без внесения каких-либо изменений в X)?
- и, что более важно, как создать дубликат кадра данных pyspark?
Этот вопрос является продолжением этого поста
Подробнее здесь: https://stackoverflow.com/questions/522 ... in-pyspark
Мобильная версия