简体   繁体   English

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

[英]How to sort dataframe in Spark without using Spark SQL ?

I'm working with Spark now but I find out that using ORDER BY in Spark SQL is very slow to sort a DataFrame. 我现在正在使用Spark,但是我发现在Spark SQL中使用ORDER BY对DataFrame进行排序非常慢。 So how to sort a DataFrame without Spark SQL ? 那么如何在不使用Spark SQL的情况下对DataFrame进行排序呢?

I'm not sure if I've fully understand what you need. 我不确定我是否完全了解您的需求。

Anyway, if you want to sort a DF you could use sortBy (or sortByKey in case of (K,V)) 无论如何,如果要对DF进行排序,则可以使用sortBy(如果是(K,V),则可以使用sortByKey)

For example, if we assume to have a DF (in this case coming from Spark SQL), we can sort it like this: 例如,如果我们假设有一个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

As said before, you can sort any DF, but I just want to show another way to "access" data with Spark SQL, and then sorting them with Spark core functionalities. 如前所述,您可以对任何DF进行排序,但我只想展示另一种使用Spark SQL“访问”数据,然后使用Spark核心功能对其进行排序的方法。

Hope it could help! 希望对您有所帮助!

FF FF

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM