代码之家  ›  专栏  ›  技术社区  ›  Manu Chadha

如何排序后只从数据集中选择特定列

  •  0
  • Manu Chadha  · 技术社区  · 6 年前

    我有下表:

    DEST_COUNTRY_NAME   ORIGIN_COUNTRY_NAME count
    United States       Romania             15
    United States       Croatia             1
    United States       Ireland             344
    Egypt               United States       15  
    

    该表表示为数据集。

    scala> dataDS
    res187: org.apache.spark.sql.Dataset[FlightData] = [DEST_COUNTRY_NAME: string, ORIGIN_COUNTRY_NAME: string ... 1 more field]
    

    我想根据 count 列,只想查看count列。我已经做了,但我只做了两步

    1-我首先排序以获得排序DS- dataDS.sort(col("count").desc) 2-然后在该DS上选择- (dataDS.sort(col("count").desc)).select(col("count")).show();

    上面给我的感觉就像是嵌入式SQL查询。在 sql 但是,我可以在不使用嵌入式查询的情况下执行相同的查询。 select * from flight_data_2015 ORDER BY count ASC

    有没有更好的方法可以让我不创建新的分类和选择 Dataset ?

    1 回复  |  直到 6 年前
        1
  •  0
  •   user11037342    6 年前

    没什么问题

    (dataDS.sort(col("count").desc)).select(col("count")).show();
    

    这是正确的做法,除了排序本身的问题之外,它没有负面的性能影响。

    自由使用,不再担心。

    推荐文章