Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/hadoop/6.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 Hadoop Spark-存储在一个大文件中,而不是许多小文件和索引中_Apache Spark_Hadoop_Pyspark_Apache Spark Sql_Hadoop Partitioning - Fatal编程技术网

Apache spark Hadoop Spark-存储在一个大文件中,而不是许多小文件和索引中

Apache spark Hadoop Spark-存储在一个大文件中,而不是许多小文件和索引中,apache-spark,hadoop,pyspark,apache-spark-sql,hadoop-partitioning,Apache Spark,Hadoop,Pyspark,Apache Spark Sql,Hadoop Partitioning,每天我都会计算一些统计数据并将其存储在一个文件中(大约40行数据)。下面的df是每天计算的。问题是,当我每天存储它时,它会变成一个新文件,我不想这样做,因为hadoop不能很好地处理多个小文件。我不能过度使用该文件,因为我还需要历史数据 我如何每天制作一个大文件——也就是说,我写同一个主文件,而不是每天写一个新文件 我知道你可以使用coalese(1)我想,但我读到这是有性能差,所以我不知道 我想按文件中的时间列对此文件编制索引。我如何做到这一点 df.repartition(1).write.

每天我都会计算一些统计数据并将其存储在一个文件中(大约40行数据)。下面的df是每天计算的。问题是,当我每天存储它时,它会变成一个新文件,我不想这样做,因为hadoop不能很好地处理多个小文件。我不能过度使用该文件,因为我还需要历史数据

  • 我如何每天制作一个大文件——也就是说,我写同一个主文件,而不是每天写一个新文件

  • 我知道你可以使用coalese(1)我想,但我读到这是有性能差,所以我不知道

  • 我想按文件中的时间列对此文件编制索引。我如何做到这一点

    df.repartition(1).write.save(mypath, format='parquet',mode='append', header='true')
    

  • 通过这样做,您可以每天覆盖相同的旧文件。
    DF.write.mode(SaveMode.Overwrite)

    40行数据仍然很小。你确定你需要Hadoop来存储这个吗?可能不需要。但是我在hadoop中有其余的数据,所以我仍然没有弄清楚如何将它们保存在不同的位置,并且仍然可以轻松地在同一个问题中使用。如果您有任何参考体系结构,我很乐意阅读:)问题是我存储的统计数据是微秒、秒和1小时。一小时的文件非常小,但是微秒的文件很大,所以可能需要hadoop。所以我想把它保存在同一个文件系统中,而不用另一个数据库。因此,问题是我无法覆盖该文件,因为我也需要旧文件中的数据。因此,第一天我将有40个数据点,第二天我还有40个数据点,但是它需要附加到主文件中(40+40=80个数据点)@Secret你可以
    df.partitonBy(“datetime”)。写…
    进行分区folders@cricket_007:谢谢。我不想对它进行分区,但如果有意义的话,我想把它写在一个大文件中。所以每天我都会附加到同一个主文件,而不是每天多个文件夹?因此,按分区将不会work@SecretAgent不,如果您按day文件夹分区,那么您将只创建并覆盖date文件夹。例如,
    data/day=20180530
    ,然后第二天使用
    data/day=20180531
    @cricket\u 007:谢谢。我目前正在做类似的事情。但我想我要做的是把它附加到同一个文件中。如果我这样做,我可能有几天的时间来处理包含大约30行数据的文件,这将不是很有效。