2 Câu hỏi: Apache Spark ném NullPulumException khi gặp phải tính năng bị thiếu

câu hỏi được tạo ra tại Sat, Nov 7, 2015 12:00 AM

Tôi gặp vấn đề kỳ lạ với PySpark khi lập chỉ mục cột chuỗi trong các tính năng. Đây là tệp tmp.csv của tôi:

 49 310

trong đó tôi có một giá trị bị thiếu cho 'x0'. Lúc đầu, tôi đang đọc các tính năng từ tệp csv vào DataFrame bằng pyspark_csv: https://github.com/seahboonsiew /pyspark-csv sau đó lập chỉ mục x0 với String Indexer:

 49 310

khi gọi '' ind.collect () '' Spark ném java.lang.NullPulumException. Mọi thứ đều hoạt động tốt đối với tập dữ liệu hoàn chỉnh, ví dụ: đối với 'x1'.

Có ai có manh mối gì gây ra điều này không và cách khắc phục?

Cảm ơn trước!

Serge

Cập nhật:

Tôi sử dụng Spark 1.5.1. Lỗi chính xác:

 49 310

Tôi đã cố gắng tạo cùng một DataFrame mà không cần đọc tệp csv,

 49 310

và nó đưa ra cùng một lỗi. Một ví dụ khác nhau hoạt động tốt,

 49 310

Cập nhật 2:

Tôi vừa phát hiện ra vấn đề tương tự ở Scala, vì vậy tôi đoán đó là lỗi Spark không chỉ PySpark. Đặc biệt, khung dữ liệu

 49 310

ném java.lang.NullPulumException khi lập chỉ mục tính năng 'x0'. Hơn nữa, khi lập chỉ mục 'x0' trong khung dữ liệu sau

 49 310

Tôi đã có 'java.lang.UnsupportedOperationException: Lược đồ cho loại Bất kỳ không được hỗ trợ', nguyên nhân là do thiếu giá trị 'num' trong vectơ thứ 5. Nếu một thay thế nó bằng một số, mọi thứ sẽ hoạt động tốt ngay cả khi thiếu giá trị trong vectơ thứ nhất.

Tôi cũng đã thử các phiên bản cũ hơn của Spark (1.4.1) và kết quả là như nhau.

    
14
2 Câu trả lời                              2                         

Có vẻ như mô-đun bạn đang sử dụng chuyển đổi các chuỗi rỗng thành null và đôi khi nó bị rối khi xử lý xuôi dòng. Thoạt nhìn, nó trông giống như một lỗi PySpark .

Làm cách nào để khắc phục nó? Một cách giải quyết đơn giản là bỏ null trước khi lập chỉ mục:

 49 310

hoặc thay thế null bằng một số trình giữ chỗ:

 49 310

Ngoài ra, bạn có thể sử dụng 49 310 . Đó là hiệu quả, đã được thử nghiệm và như một phần thưởng không chuyển đổi các chuỗi trống thành 49 310.

 49 310     
11
2015-11-08 11: 08: 44Z
À = "https://stackoverflow.com/questions /25239958 và làm việc với nó. Tuy nhiên, vấn đề vẫn còn, tôi sẽ thử gửi báo cáo lỗi nếu có. Tôi còn khá mới với Spark, vì vậy có khả năng tôi đang thiếu thứ gì đó.     
1
2015-11-08 09: 05: 59Z
x0,x1,x2,x3 
asd2s,1e1e,1.1,0
asd2s,1e1e,0.1,0
,1e3e,1.2,0
bd34t,1e1e,5.1,1
asd2s,1e3e,0.2,0
bd34t,1e2e,4.3,1
nguồn đặt đây