Apache spark 将拼花地板列读取为RDD行

Apache spark 将拼花地板列读取为RDD行,apache-spark,dataframe,rdd,parquet,Apache Spark,Dataframe,Rdd,Parquet,有没有一种方法可以从拼花地板文件中读取列作为Spark RDD中的行,将每列的全部内容具体化为RDD元组中的列表 其思想是,对于需要在一组执行器上运行不可分发的、仅内存中的算法(处理一整列数据)的情况,我希望能够通过将每列的全部内容发送给执行器来并行处理。我最初的实现是将拼花地板文件作为DataFrame读取,然后将其转换为RDD并通过aggregateByKey对行进行转置,结果在时间上花费太多(可能是因为需要大量的洗牌) 如果可能,我更愿意使用现有的实现,而不是滚动我自己的、和/或的实现 我

有没有一种方法可以从拼花地板文件中读取列作为Spark RDD中的,将每列的全部内容具体化为RDD元组中的列表

其思想是,对于需要在一组执行器上运行不可分发的、仅内存中的算法(处理一整列数据)的情况,我希望能够通过将每列的全部内容发送给执行器来并行处理。我最初的实现是将拼花地板文件作为
DataFrame
读取,然后将其转换为
RDD
并通过
aggregateByKey
对行进行转置,结果在时间上花费太多(可能是因为需要大量的洗牌)

如果可能,我更愿意使用现有的实现,而不是滚动我自己的、和/或的实现


我们也欢迎您对其他方法提出建议。

为什么不使用
DataSet
来实现这一点?你也尝试过窗口函数吗?@Shankar我不想在最初的问题措辞中提到它,但以这种方式阅读拼花地板的动机是使完整的列数据可用于现有的用Python编写的NumPy和Pandas数字处理例程。因此,我使用的是PySpark,它不能使
DataSet
可用。我使用PySpark的事实也使得
groupBy
/windowing作为解决方案的吸引力降低,因为PySpark没有(还?)实现UDAFs:.+1经常需要在列上而不是行上进行并行!能够有效地将整列加载到核心中非常有用。为什么不使用
DataSet
?你也尝试过窗口函数吗?@Shankar我不想在最初的问题措辞中提到它,但以这种方式阅读拼花地板的动机是使完整的列数据可用于现有的用Python编写的NumPy和Pandas数字处理例程。因此,我使用的是PySpark,它不能使
DataSet
可用。我使用PySpark的事实也使得
groupBy
/windowing作为解决方案的吸引力降低,因为PySpark没有(还?)实现UDAFs:.+1经常需要在列上而不是行上进行并行!有助于有效地将整列加载到堆芯中。