0

就像下面的亚马逊雅典娜。

数据

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 列

我的问题:

  1. 我可以编写 Athena 中的查询来实现此结果。
  2. 我可以使用 R 吗?但是 Table 命令不支持它需要找到一个库来并行化数据。然后使用 reshape2 包。即使这样,我也不知道该怎么做。
  3. 火花是一个更好的解决方案。如果是这样,我该怎么做。我已经在 EC2 实例上设置了 spark 并将分组数据从 S3 下载到 EC2 tmp 文件夹作为 CSV 其 8GB 数据文件。
  4. 我应该对原始数据集进行操作还是使用按数据集分组。

请给我指点。我是所有这些技术的新手,并且正在弄清楚这一点。

4

0 回答 0