2015-10-18 18 views
7

Tôi đã lưu Array[String] vào tệp Parquet từ Spark.Đọc mảng chuỗi từ Spark

Để đọc nó tôi sử dụng:

row.getAs[Array[String]]("result") 

Nhưng nhận được:

java.lang.ClassCastException: scala.collection.mutable.WrappedArray$ofRef cannot be cast to [Ljava.lang.String; 

Dưới đây là kết quả của printSchema():

root                    
|-- result: array (nullable = true) 
| |-- element: string (containsNull = true) 

Làm thế nào nên các getAs() được sửa đổi?

+5

'row.getAs [Seq [String]] (" result ")' có hoạt động không? – Reactormonk

+0

Hoặc 'row.getAs [scala.collection.mutable.WrappedArray [String]] (" kết quả ")'. @ Reactormonk Tôi nghĩ bạn nên làm cho nó một câu trả lời. – zero323

+0

@ zero323 'Seq' và' WrappedArray' hoạt động. Bạn có thấy lý do nào để sử dụng cái này qua cái kia không? Quan tâm hơn đến hiệu suất hơn mức sử dụng. – BAR

Trả lời

16

row.getAs[Seq[String]]("result") hoạt động không?

+2

Có vẻ như Spark có thể sử dụng ngầm định cho trường hợp này. Nếu tôi có cơ hội, hãy kiểm tra và gửi PR. – BAR

+0

@BAR bạn đã kết thúc gửi PR hay gửi vé? Tôi đã không nhìn thấy một trong những dơi và tôi chỉ có chút này với 1.6.1 – placeybordeaux

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