相关疑难解决方法(0)

如何在Scala Spark中对RDD进行排序?

读取Spark方法sortByKey:

sortByKey([ascending], [numTasks])   When called on a dataset of (K, V) pairs where K implements Ordered, returns a dataset of (K, V) pairs sorted by keys in ascending or descending order, as specified in the boolean ascending argument.
Run Code Online (Sandbox Code Playgroud)

是否可以返回"N"个数量的结果.因此,不要返回所有结果,只返回前10位.我可以将已排序的集合转换为数组并使用take方法,但由于这是一个O(N)操作,是否有更有效的方法?

scala apache-spark rdd

34
推荐指数
3
解决办法
4万
查看次数

如何在Spark窗口函数中使用降序的orderby()?

我需要一个窗口函数,它按一些键(=列名称)进行分区,按另一个列名称进行排序,并返回前x行的行.

这适用于升序:

def getTopX(df: DataFrame, top_x: String, top_key: String, top_value:String): DataFrame ={
    val top_keys: List[String] = top_key.split(", ").map(_.trim).toList
    val w = Window.partitionBy(top_keys(1),top_keys.drop(1):_*)
       .orderBy(top_value)
    val rankCondition = "rn < "+top_x.toString
    val dfTop = df.withColumn("rn",row_number().over(w))
      .where(rankCondition).drop("rn")
  return dfTop
}
Run Code Online (Sandbox Code Playgroud)

但是当我尝试将其更改为第4行orderBy(desc(top_value))orderBy(top_value.desc)第4行时,我收到语法错误.这里的语法是什么?

scala apache-spark apache-spark-sql spark-dataframe

19
推荐指数
2
解决办法
4万
查看次数

如何使用java api在Apache Spark Dataset中使用desc进行排序?

我正在使用spark会话读取文件,然后拆分单词并计算单词的迭代次数.我需要以desc顺序显示数据

SparkSession sparkSession = SparkSession
            .builder()
            .appName("Java Spark SQL basic example")
            .config("spark.master", "local")
            .getOrCreate();

JavaRDD<Word> textFile = sparkSession
            .read()
            .textFile("/Users/myname/Documents/README.txt")
            .javaRDD()
            .flatMap(s -> Arrays.asList(s.split("[\\s.]")).iterator())
            .map(w -> {
                Word word = new Word();
                word.setWord(w.replace(",", ""));
                return word;
            });

    Dataset<Row> df = sparkSession.createDataFrame(textFile, Word.class);
    df.groupBy("word").count().orderBy(org.apache.spark.sql.functions.col("count").desc()).show();
Run Code Online (Sandbox Code Playgroud)

当我使用org.apache.spark.sql.functions.col("count")它时工作正常但无法按照https://spark.apache.org/docs/2.1.1/api/java/org/apache/spark/sql/functions.html#desc( java.lang.String中)

df.sort(asc("dept"), desc("age"))

还有如何在Spark SQL中按降序排序列? 没用.我想这是斯卡拉.Java中的等价物是什么?

java apache-spark apache-spark-sql apache-spark-dataset

3
推荐指数
1
解决办法
5732
查看次数