代码之家  ›  专栏  ›  技术社区  ›  K S Nidhin

在数据帧的select expr中使用生成的字符串

  •  1
  • K S Nidhin  · 技术社区  · 8 年前

    我对scala编程非常陌生,所以这可能是一个基本问题

    这是我的最终目标:

    val df2 = df1.select("col1","col2","col3")
    

    scala> val colVar = generateColSelectionString(4)
    colVar: String = col1,col2,col3
    

    现在

    我该如何做这样的事情:

    val df2 = df1.select(colVar)
    
    2 回复  |  直到 8 年前
        1
  •  5
  •   akuiper    8 年前

    selectExpr :

    val df = Seq((1,2,3)).toDF("col1","col2","col3")
    
    val colVar = "col1,col2,col3"
    
    df.selectExpr(colVar.split(","):_*).show
    +----+----+----+
    |col1|col2|col3|
    +----+----+----+
    |   1|   2|   3|
    +----+----+----+
    
        2
  •  2
  •   pasha701    8 年前

    拆分“colVar”变量,并使用带有两个参数的“select”:

    val data = List(("v1", "v2", "v3"))
    val df = sparkContext.parallelize(data).toDF("col1", "col2", "col3")
    
    val colVar = "col1,col2,col3"
    val columnList = colVar.split(",")
    val result = df.select(columnList.head, columnList.tail: _*)
    result.show(false)
    

    输出:

    +----+----+----+
    |col1|col2|col3|
    +----+----+----+
    |v1  |v2  |v3  |
    +----+----+----+
    
    推荐文章