如何在不使用 Spark SQL 的情况下对 Spark 中的数据帧进行排序?

Posted

技术标签:

【中文标题】如何在不使用 Spark SQL 的情况下对 Spark 中的数据帧进行排序?【英文标题】:How to sort dataframe in Spark without using Spark SQL ? 【发布时间】:2015-04-20 07:10:53 【问题描述】:

我现在正在使用 Spark,但我发现在 Spark SQL 中使用 ORDER BY 对 DataFrame 进行排序非常慢。那么如何在没有 Spark SQL 的情况下对 DataFrame 进行排序呢?

【问题讨论】:

【参考方案1】:

我不确定我是否完全了解您的需求。

无论如何,如果你想对一个 DF 进行排序,你可以使用 sortBy(或者在 (K,V) 的情况下使用 sortByKey)

例如,如果我们假设有一个 DF(在这种情况下来自 Spark SQL),我们可以这样排序:

val sqlResult = sqlContext.sql("select first_column, second_column from logs").toDF()
val result = sqlResult.sortBy(x=>x._1) // first column sorting

如前所述,您可以对任何 DF 进行排序,但我只想展示另一种使用 Spark SQL“访问”数据的方法,然后使用 Spark 核心功能对它们进行排序。

希望对您有所帮助!

FF

【讨论】:

如果我帮助了你,你能评价并接受答案吗?祝你有美好的一天!

以上是关于如何在不使用 Spark SQL 的情况下对 Spark 中的数据帧进行排序?的主要内容,如果未能解决你的问题,请参考以下文章

如何在不使用 GROUP BY 或 PARTITION BY 的情况下对 Oracle SQL 中的数据进行分组

SQL:如何在不覆盖结果的情况下对表的同一列进行多次连接?

如何在不单独指定所有列的情况下对所有列的 SQL 结果进行排序?

是否可以在不使用 SQL 连接的情况下对不同年份进行每周比较?

我可以在不创建实体类的情况下对大型 sql 使用休眠命名查询吗?

可以在没有运行任何 Map/Reduce (/Yarn) 的情况下对 Hive 表执行 Spark SQL 吗?