如何使用R在S3上通过唯一列ID设置分区名称

时间:2019-05-14 00:00:52

标签: r apache-spark amazon-s3 sparklyr

我正在处理一个数据帧,该数据帧的一列唯一地标识数据,而另一列状态。

我希望在我的存储桶上的Amazon s3上为每个唯一的ID创建一个分区,并在该分区内放一个给该分区命名的行的json,但是我不知道如何重命名该分区名称以成为我的ID,以及如何正确保存。

我正在使用R和Sparklyr。

数据帧是这样的:

    UniqueId | Status  
    3456    |  TRUE  
    1244   |   TRUE  
    5559     | FALSE  

我希望我的存储分区是:

    /part_3456  
    /part_1244   
    /part_5559  

在/ part_3456内部,我希望使用类似JSON的

    {  
    uniqueId: 3456  
    status: TRUE  
    }  

我的存储分区实际上如何:

    /part_904890489083093   
    /part_309303904944432     
    /part_530983908209820  

(此数字是一些亚马逊自动ID)

    message('-->> saving final dataset on S3...')

    numberOfElements <- count(finalDataset)
    path_s3 <- 's3://path/to/s3'
    sdf_repartition(copy_to(sc, finalDataset, overwrite = TRUE), 
                    partitions = numberOfElements , 
                    partition_by = "UniqueId") %>%
    sdf_coalesce(numberOfElements) %>%
    spark_write_json(path = path_s3,mode = 'overwrite')

有帮助吗? :-):-)

0 个答案:

没有答案