2017-03-20 42 views

回答

1

你的代碼幾乎是正確的。 除了兩件事情:

  • ifor循環已被使用,所以如果你想使用的i值在一個字符串,用String插值
val i =
  • 使用

    所以,你的代碼應該是這樣的:

    for (i <- List ('a','b')) { 
        val df = sqlContext.sql(s"SELECT $i, col1, col2 FROM DF1") 
        df.show() 
    } 
    

    筆者評論後

    編輯:

    您可以用.map然後.reduceLeft做到這一點:

    // All your dataframes 
    val dfs = Seq('a','b').map { i => 
        sqlContext.sql(s"SELECT $i, col1, col2 FROM DF1") 
    } 
    
    // Then you can reduce your dataframes into one 
    val unionDF = dfs.reduceLeft((dfa, dfb) => 
        dfa.unionAll(dfb) 
    ) 
    
  • +0

    其實我需要不同的dataframes(在這種情況下2,a和b)。 假設如果DF1包含以下數據 - COL1,COL2 1,A 2,B 然後數據幀** A **應包含: - 一個 ,1,A 一個,2,B 和數據幀** b **應該包含: - b,1,A b,2,B 我必須創建30個奇怪類似的數據幀,然後將它們全部合併。 – XEngineer

    +0

    我在你的精確度之後編輯了我的答案 –

    +0

    完美!現在正在工作。 我做的一點小小的調整是** s「$ {'」'} $ i $ {'「'}」**以容納字符串的引號。 – XEngineer