Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark 斯帕克·索特比:写作时是否保留了顺序?_Apache Spark_Apache Spark Sql_Databricks - Fatal编程技术网

Apache spark 斯帕克·索特比:写作时是否保留了顺序?

Apache spark 斯帕克·索特比:写作时是否保留了顺序?,apache-spark,apache-spark-sql,databricks,Apache Spark,Apache Spark Sql,Databricks,我在Scala/Spark中有: myDataframe .orderBy("date") .write .csv(...) 生成的CSV是: part-00000-xxx.csv part-00001-xxx.csv part-00002-xxx.csv 问题: 您知道在运行前面的代码之后,“日期”顺序是否会被保证保存在单个文件中 文件之间也是这样吗?我的意思是,第00001部分中的“日期”保证优于第00000部分中的“日期” 如果没有,请您发布一个满足这两个要求的代

我在Scala/Spark中有:

  myDataframe
   .orderBy("date")
   .write
   .csv(...)
生成的CSV是:

part-00000-xxx.csv
part-00001-xxx.csv
part-00002-xxx.csv
问题:

  • 您知道在运行前面的代码之后,“日期”顺序是否会被保证保存在单个文件中

  • 文件之间也是这样吗?我的意思是,第00001部分中的“日期”保证优于第00000部分中的“日期”

  • 如果没有,请您发布一个满足这两个要求的代码

  • 如果您愿意。保存订单前的无煤(1)将保留

    您可以添加带有顺序索引的列,也许这会对您有所帮助

    myDataframe
    .withColumn("order", row_number().over(Window.orderBy('date)))
    .write
    .csv(...)
    

    回答得好。不过,请你再详细说明一下好吗?如果我合并,它将把输出减少到只有一个文件,我宁愿避免将并行度降到1。此外,我没有清楚地看到“订单”栏的要点。我的目标是输出多个文件,在“日期”列上排序,在每个文件内部和文件之间(第0000部分的“日期”低于第0001部分)。然后如何处理“order”列以获得所需的排序文件?谢谢使用coalesce(n),其中n是所需的零件文件数。这将最终得到一个全局排序。您可以使用reparton(col,n),其中col是您的排序列,n是部分文件的数量,但在这里您不会得到全局排序,但每个分区都会按其自身进行排序;然后,我将对10个文件进行全局排序(第0000部分的“日期”低于第0001部分,等等),并在每个文件内部进行排序?你能确认一下吗?