2016-06-23 22 views

Trả lời

5

toDF() mất một lặp đi lặp lại tham số loại String, vì vậy bạn có thể sử dụng _* loại chú thích để vượt qua một chuỗi:

val df=sc.parallelize(Seq(
    (1,"example1", Seq(0,2,5)), 
    (2,"example2", Seq(1,20,5)))).toDF(columns: _*) 

Để biết thêm thông tin lặp lại - hãy xem phần 4.6.2 trong Scala Language Specification.

+1

Thanks..How để xác định loại dữ liệu cùng với cột bên toDF()? – Devi

+0

Thanksss .... đây là chính xác tôi đang tìm kiếm morre hơn một giờ ,,, cảm ơn – Vicky

1
val df=sc.parallelize(Seq(
(1,"example1", Seq(0,2,5)), 
(2,"example2", Seq(1,20,5)))).toDF("column1", "column2", "column3") 

toDF() có chuỗi bằng dấu phẩy tách

1

toDF() được định nghĩa trong Spark documentation như:

def toDF(colNames: String*): DataFrame 

Và vì vậy bạn cần để biến mảng của bạn đến một varargs cũng như mô tả here. Điều đó có nghĩa bạn cần phải làm như sau:

val columns=Array("column1", "column2", "column3") 
val df=sc.parallelize(Seq(
(1,"example1", Seq(0,2,5)), 
(2,"example2", Seq(1,20,5)))).toDF(columns: _*) 

(Địa chỉ: _ * để columns trong toDF)

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