2016-05-19 20 views
10

Tôi muốn thêm một cột được điền bằng một ký tự N trong một DataFrame trong SparkR. Tôi sẽ làm điều đó như thế với mã phi SparkR:Thêm cột vào DataFrame trong sparkR

df$new_column <- "N" 

Nhưng với SparkR, tôi nhận được lỗi sau:

Error: class(value) == "Column" || is.null(value) is not TRUE 

Tôi đã thử mọi thứ điên rồ để quản lý nó, tôi đã có thể tạo cột bằng cách sử dụng một cột khác (hiện có) với df <- withColumn(df, "new_column", df$existing_column), nhưng điều đơn giản này, không ...

Bất kỳ trợ giúp nào?

Cảm ơn.

+1

Các chỉ hack tôi biết việc này là để sử dụng 'ifelse' với giá trị trả về tương tự cho cả hai điều kiện. Vì vậy, 'df $ new <- ifelse (điều kiện, 'N', 'N')'. – mtoto

+0

Làm việc, cảm ơn bạn rất nhiều (đặt nó như là một câu trả lời nếu bạn muốn tôi để xác nhận nó) –

Trả lời

13

Giải pháp thẳng sẽ được sử dụng SparkR::lit() chức năng:

df_new = withColumn(df, "new_column_name", lit("N")) 
+1

Nice! Không biết về 'lit()', sẽ xóa câu trả lời của tôi khi OP chấp nhận của bạn. – mtoto

+0

Đã xóa. Cảm ơn cả hai. –

+0

Tôi sẽ thêm một cột đầy đủ các Quốc tịch như thế nào? –

Các vấn đề liên quan