выберите и добавьте столбцы с псевдонимом - PullRequest
0 голосов
/ 27 сентября 2018

Я хочу выбрать несколько столбцов, добавить несколько столбцов или разделить, с некоторыми столбцами в качестве пробела и сохранить их с новыми именами в качестве псевдонима.Например, в SQL должно быть что-то вроде:

select "   " as col1, b as b1, c+d as e from table 

Как мне добиться этого в Spark?

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Вы также можете использовать встроенные функции DF.Например, учитывая:

import org.apache.spark.sql.functions._
val df1 = Seq(
 ("A",1,5,3),
 ("B",3,4,2),
 ("C",4,6,3),
 ("D",5,9,1)).toDF("a","b","c","d")

выберите столбцы следующим образом:

df1.select(lit(" ").as("col1"),
           col("b").as("b1"),
           (col("c") + col("d")).as("e"))

дает ожидаемый результат:

+----+---+---+
|col1| b1|  e|
+----+---+---+
|    |  1|  8|
|    |  3|  6|
|    |  4|  9|
|    |  5| 10|
+----+---+---+
0 голосов
/ 27 сентября 2018

с Spark-SQL вы можете сделать то же самое.

import org.apache.spark.sql.functions._
val df1 = Seq(
 ("A",1,5,3),
 ("B",3,4,2),
 ("C",4,6,3),
 ("D",5,9,1)).toDF("a","b","c","d")

df1.createOrReplaceTempView("table")
df1.show()

val df2 = spark.sql("select ' ' as col1, b as b1, c+d as e from table ").show()

Ввод:

    +---+---+---+---+
    |  a|  b|  c|  d|
    +---+---+---+---+
    |  A|  1|  5|  3|
    |  B|  3|  4|  2|
    |  C|  4|  6|  3|
    |  D|  5|  9|  1|
    +---+---+---+---+

Вывод:

+----+---+---+
|col1| b1|  e|
+----+---+---+
|    |  1|  8|
|    |  3|  6|
|    |  4|  9|
|    |  5| 10|
+----+---+---+
...