Rag*_*van 5 apache-spark pyspark
目前在PySpark上工作。有上没有地图功能DataFrame,以及一个必须去RDD的map功能。在Scala中有一个mapon DataFrame,这有什么原因吗?
Dataset.map不是DataFrame(Dataset[Row])API的一部分。它将强类型Dataset[T]转换为强类型Dataset[U]:
def map[U](func: (T) ? U)(implicit arg0: Encoder[U]): Dataset[U]
Run Code Online (Sandbox Code Playgroud)
在强类型化的Dataset世界中,Python根本就没有地方。通常,Datasets本机JVM对象(不同于RDD它没有Python特定的实现)在很大程度上依赖于丰富的Scala类型系统(甚至Java API也受到严格限制)。即使Python实现了EncoderAPI的某种变体,数据仍必须转换为RDD用于计算的数据。
相反,Python map使用矢量化udfs 实现了自己的类似机制,该机制应在Spark 2.3中发布。它专注于结合Pandas API的高性能Serde实现。
既包括典型udfs(尤其是SCALAR和SCALAR_ITER变体),以及地图样变体- GROUPED_MAP和MAP_ITER通过施加GroupedData.apply和DataFrame.mapInPandas分别(火花> = 3.0.0)。
| 归档时间: |
|
| 查看次数: |
835 次 |
| 最近记录: |