Như đã đề cập trong manyother locations trên web, việc thêm cột mới vào Khung dữ liệu hiện tại không đơn giản. Thật không may, điều quan trọng là phải có chức năng này (mặc dù nó không hiệu quả trong môi trường phân tán) đặc biệt khi cố gắng nối hai số DataFrame
s bằng cách sử dụng unionAll
.Thêm cột trống để kích hoạt DataFrame
Cách giải quyết thanh lịch nhất để thêm cột null
vào DataFrame
để tạo điều kiện cho unionAll
?
phiên bản của tôi đi như thế này:
from pyspark.sql.types import StringType
from pyspark.sql.functions import UserDefinedFunction
to_none = UserDefinedFunction(lambda x: None, StringType())
new_df = old_df.withColumn('new_column', to_none(df_old['any_col_from_old']))
Làm thế nào để làm điều này có điều kiện, nếu cột không tồn tại ở nơi đầu tiên? Tôi đang cố gắng sử dụng UDF và vượt qua DF để nó và sau đó làm 'new_column không trong df.columns' kiểm tra, nhưng không thể làm cho nó hoạt động. – Gopala
@Gopala Điều này có giúp được không: http://stackoverflow.com/q/35904136/1560062? – zero323
Tôi cũng nhìn vào nó, nhưng tôi vẫn không thể kết hợp điều kiện đó vào một 'withColumn ('blah', ở đâu (has_column (df ['blah']) == False) ....' loại cấu trúc. Phải thiếu một số cấu trúc cú pháp.Tôi muốn thêm một cột với Nulls, nếu nó không tồn tại Câu trả lời này trước đây, cái kia sẽ kiểm tra sau: – Gopala