2015-07-09 34 views
10

Tôi muốn viết RDD đến MYSQL, trong đó RDD chứa java.util.Date loại.java.util.Date không được hỗ trợ

rdd.map(f=> FeatureData(
      f.get("name").toString, 
      f.get("value").toString.toDouble, 
      f.get("time").asInstanceOf[Date], 
      f.get("period").toString)) 
    .toDF() 

Trong RDD này là chìa khóa của kiểu giá trị time 's cũng là java.util.Date và nó chỉ nhận được lỗi của [See nested exception: java.lang.UnsupportedOperationException: Schema for type java.util.Date is not supported

+2

Thử chuyển đổi nó thành 'java.sql.Date' – Dragondraikk

+0

Nếu tôi đặt' f.get ("thời gian") asInstanceOf [java.sql.Date] ', Nó sẽ nhận được lỗi đó. 'java.util.Date không thể được đưa vào java.sql.Date' – yeyimilk

+1

Bạn không thể bỏ nó trực tiếp, nhưng một khi bạn có sql.Date bạn có thể khởi tạo một util.Date bằng tay đọc từ các trường sql.Date –

Trả lời

16

Lúc đầu chuyển đổi java.util.Date để java.sql. Ngày. Sau đó chạy sql của bạn với dữ liệu của java.sql.Date. Mẫu mã:

java.util.Date utilDate = new java.util.Date(); 
java.sql.Date sqlDate = new java.sql.Date(utilDate.getTime()); 
Các vấn đề liên quan