2016-05-30 22 views
5

Tôi tự hỏi tôi có thể sử dụng truy vấn cập nhật trong sparksql chỉ thích:cập nhật truy vấn trong Spark SQL

sqlContext.sql("update users set name = '*' where name is null") 

Tôi đã nhận lỗi:

org.apache.spark.sql.AnalysisException: 
Unsupported language features in query:update users set name = '*' where name is null 

Nếu sparksql không hỗ trợ các truy vấn cập nhật hoặc Tôi wirte mã sai?

+0

Có thể vấn đề phiên bản có thể xảy ra –

+0

Tôi sử dụng spark-1.6.1. –

Trả lời

10

Spark SQL không hỗ trợ câu hỏi UPDATE.

Hive đã bắt đầu hỗ trợ UPDATE kể từ phiên bản hive 0.14. Nhưng ngay cả với Hive, nó chỉ hỗ trợ cập nhật/xóa trên những bảng hỗ trợ các giao dịch , được đề cập trong số hive documentation.

Xem câu trả lời trong diễn đàn databricks xác nhận rằng UPDATES/DELETES are not supported in Spark SQL vì nó doesn't support transactions. Nếu chúng tôi nghĩ rằng, việc hỗ trợ cập nhật ngẫu nhiên rất phức tạp với hầu hết các định dạng lưu trữ trong dữ liệu lớn. Nó đòi hỏi phải quét các tệp lớn, cập nhật các bản ghi cụ thể và ghi lại các TB tiềm tàng của dữ liệu. Nó không phải là SQL bình thường.

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