Pyspark 不允许我创建存储桶
Posted
技术标签:
【中文标题】Pyspark 不允许我创建存储桶【英文标题】:Pyspark does not allow me to create bucket 【发布时间】:2018-03-21 05:18:19 【问题描述】:。
(
df
.write
.partitionBy('Source')
.bucketBy(8,'destination')
.saveAsTable('flightdata')
)
AttributeError Traceback(最近一次调用最后一次) 在 () ----> 1 df.write.bucketBy(2,"Source").saveAsTable("table")
AttributeError: 'DataFrameWriter' 对象没有属性 'bucketBy'
【问题讨论】:
【参考方案1】:看来bucketBy
仅在 spark 2.3.0 中受支持https://spark.apache.org/docs/latest/api/python/_modules/pyspark/sql/readwriter.html#DataFrameWriter.bucketBy
您可以尝试创建一个新的存储桶列
from pyspark.ml.feature import Bucketizer
bucketizer = Bucketizer(splits=[ 0, float('Inf') ],inputCol="destination", outputCol="buckets")
df_with_buckets = bucketizer.setHandleInvalid("keep").transform(df)
然后使用partitionBy(*cols)
df_with_buckets.write.partitionBy('buckets').saveAsTable("table")
【讨论】:
以上是关于Pyspark 不允许我创建存储桶的主要内容,如果未能解决你的问题,请参考以下文章
Pyspark 从 S3 存储桶的子目录中读取所有 JSON 文件
无法使用 Pyspark 2.4.4 读取 s3 存储桶中的镶木地板文件