2016-06-23 3 views
5

Например,Как задать имена столбцов для функции toFF() в искровом фрейме с использованием массива строк?

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) 

Как я могу установить имя столбца, используя массив строк? Можно ли указать типы данных внутри toDF()?

ответ

5

toDF() принимает повторный параметр типа String, так что вы можете использовать _* аннотацию типа, чтобы передать последовательность:

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

Подробнее о повторяющихся параметрах см. Раздел 4.6.2 в разделе Scala Language Specification.

+1

Thanks..How указать тип данных вместе с колоннами внутри toDF()? – Devi

+0

Спасибо ... это точно я ищу morre, чем час ,,, спасибо – Vicky

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

toDF() принимает запятой отделено строки

1

toDF() определяется в Spark documentation как:

def toDF(colNames: String*): DataFrame 

И поэтому вам нужно, чтобы превратить ваш массив в переменной длины также описано here. Это означает, что вам нужно сделать следующее:

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: _*) 

(Добавить: * к columns в toDF)

Смежные вопросы