我们在HDFS中有特定格式的文件。我们想要在spark中处理从这些文件中提取的数据。我们已经开始编写输入格式以创建RDD。这样我们希望能够从整个文件创建一个RDD。
但是每个处理都必须处理文件中包含的一小部分数据,我知道如何非常有效地提取这个子集,而不是过滤一个巨大的RDD。
如何从我的驱动程序以字符串的形式将查询过滤器传递给我的输入格式(与hive上下文相同)?
编辑:
我的文件格式是NetCDF,它以高效的方式为多维数据存储巨大的矩阵,例如x,y,z和时间。第一种方法是从矩阵中提取所有值并为每个值产生RDD线。我希望我的inputformat只提取矩阵的几个子集(可能是0.01%)并构建一个小的RDD来使用。子集可以是z = 0和小时间段。我需要将时间段传递给输入格式,这将只检索我感兴趣的值。
我猜Hive上下文在您将SQL查询传递给上下文时会执行此操作。 RDD中只存在与SQL查询匹配的值,而不是文件的所有行。