就像下面的亚马逊雅典娜。
数据
ID , CODE
a , 123
b , 345
a , 123
a , 345
c , 246
d , 678
分组数据
我已将上述数据与 ID 和 CODE 进行分组,以获得组合的频率/计数,如下所示。
ID , CODE ,FREQ
a , 123 , 2
a , 345 , 1
b , 345 , 1
c , 246 , 1
d , 678 , 1
所需的转换
所需的数据转换:我正在尝试将 CODE 列中的行转换为标题行并创建一个矩阵/数据框。
ID , 123 ,345 ,246, 678
a , 2 , 1 , 0 , 0
b , 0 , 1 , 0 , 0
c , 0 , 0 , 1 , 0
d , 0 , 0 , 0 , 1
在较小的数据集上,我已成功使用 R“Table”命令,它工作正常。但现在我有 2700 万个唯一 ID,有 300 个唯一列,2.2 亿行。所以我的最终矩阵将有 27Mrows X 350 列
我的问题:
- 我可以编写 Athena 中的查询来实现此结果。
- 我可以使用 R 吗?但是 Table 命令不支持它需要找到一个库来并行化数据。然后使用 reshape2 包。即使这样,我也不知道该怎么做。
- 火花是一个更好的解决方案。如果是这样,我该怎么做。我已经在 EC2 实例上设置了 spark 并将分组数据从 S3 下载到 EC2 tmp 文件夹作为 CSV 其 8GB 数据文件。
- 我应该对原始数据集进行操作还是使用按数据集分组。
请给我指点。我是所有这些技术的新手,并且正在弄清楚这一点。