【问题标题】:partition the csv file on the basis of date and dump the partition into parquet根据日期对 csv 文件进行分区并将分区转储到镶木地板中
【发布时间】:2019-07-24 03:02:10
【问题描述】:

我对 scala 非常陌生,我有一个 csv 文件:

MSH     ModZId  ModProd     Date
1140000 zzz      abc    2/19/2018
1140000 zzz      xyz    2/19/2018
651     zzz      def    2/19/2018
651     zzz      ghi    2/19/2018
1140000 zzz      klm    2/19/2018
860000  zzz      mno    2/26/2018
860000  zzz      pqr    2/26/2018
122     zzz      stu    2/26/2018
122     zzz      wxy    2/26/2018
860000  zzz      ijk    2/26/2018

我需要根据日期对 csv 文件进行分区,并将分区转换为 parquet,如下所示:

拼花输出 1:

MSH     ModZId  ModProd  Date
1140000 zzz     abc     2/19/2018
1140000 zzz     xyz     2/19/2018
651     zzz     def     2/19/2018
651     zzz     ghi     2/19/2018
1140000 zzz     klm     2/19/2018

拼花输出 2:

MSH     ModZId  ModProd  Date
860000  zzz     mno     2/26/2018
860000  zzz     pqr     2/26/2018
122     zzz     stu     2/26/2018
122     zzz     wxy     2/26/2018
860000  zzz     ijk     2/26/2018

谁能帮帮我。我很新,不知道如何根据日期在 scala 中对 csv 文件进行分区

【问题讨论】:

    标签: scala apache-spark parquet


    【解决方案1】:

    如果你已经读取了csv文件并得到了上面的数据,那么你可以使用partitionBy同时写成parquet如下

    df.write.partitionBy("Date").parquet("outputpath")
    

    这将创建一个文件夹,该文件夹等于 Date 上的分区数。

    【讨论】:

    • 不是真的,它给了我 date_2/19/2018 我只需要 2/19/2018 文件夹
    • 那么您可以编写一个单独的脚本来更改 spark 作业完成的名称。
    • 我找不到任何简单的方法将文件从 date_2/19/2018 重命名为 2/19/2018。请建议我
    • 是的,shankar,我也想重命名文件夹。但是,我正在努力重命名所有文件夹。无法列出所有文件夹,然后重命名为所需的名称
    猜你喜欢
    • 2018-02-12
    • 1970-01-01
    • 2017-11-11
    • 2021-06-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-04-03
    • 2021-10-12
    相关资源
    最近更新 更多