【问题标题】:Schema order change after join operation in Spark (JAVA)Spark(JAVA)中加入操作后的模式顺序更改
【发布时间】:2017-06-09 10:31:12
【问题描述】:

我在 Java 中使用 Spark,当我在两个数据帧之间进行连接时,结果中架构的顺序不同。

我需要保留顺序,因为我想在之后将数据插入到 HBase 表中。

在 Scala 中有一个使用 seq 列表的解决方案,我想知道如何使用 Java 做到这一点?

【问题讨论】:

    标签: java join apache-spark multiple-columns


    【解决方案1】:

    您还可以使用以下方法在 Java 中创建 Scala Seq:

    import scala.collection.JavaConversions;
    import scala.collection.Seq;
    import static java.util.Arrays.asList;
    
    Seq<String> seq = JavaConversions.asScalaBuffer(asList("col_1","col_2"));
    

    【讨论】:

      【解决方案2】:

      我找到的解决方案是创建一个列数组(来自 org.apache.spark.sql.Column)。希望当您进行选择时,它会保留数组顺序。由于我从未在其他地方找到此解决方案,因此我决定将其发布在这里。

      //after making a join into my DF called "joinedDF" I do this:
      //example of schema from string
      String schemaFull= "id_meta;source_name_meta;base_name_meta;..."; 
      String[] strColumns = schemaFull.split(";");
      org.apache.spark.sql.Column[] selectedCols = new org.apache.spark.sql.Column[strColumns.length];
      for (int i=0; i < strColumns.length; i++){
          selectedCols[i] = col(strColumns[i]);
      }           
      joinedDF = joinedDF.select(selectedCols);
      

      【讨论】:

        猜你喜欢
        • 2016-10-31
        • 1970-01-01
        • 2017-11-07
        • 2021-10-25
        • 1970-01-01
        • 1970-01-01
        • 2021-09-15
        • 1970-01-01
        • 2021-06-05
        相关资源
        最近更新 更多