0

我已将 Spark 数据帧以 Parquet 格式 partitionby 列“channel_name”保存到 AWS S3。下面的代码是我如何保存到 S3:

df.write.option("header",True) \
        .partitionBy("channel_name") \
        .mode("overwrite") \
        .parquet("s3://path/")
频道名称 开始时间戳 价值 离群值
温度 2021-07-19 07:27:51 21 错误的
温度 2021-07-19 08:21:05 24 错误的
速度 2021-07-19 08:20:18 22 错误的
速度 2021-07-19 08:21:54 26 错误的
温度 2021-07-19 08:21:23 25 错误的
温度 2021-07-16 08:22:41 88 错误的

由于它是按“channel_name”分区的,现在在从 S3 读取相同数据时,它缺少该列“channel_name”。下面是我的 pyspark 和 python 代码。

df = spark.read.parquet("s3://Path/") #spark

对于 Python,我使用的是 AWS 牧马人:

import awswrangler as wr

df = wr.s3.read_parquet(path="s3://Path/")

这就是没有列“channel_name”的 df 的样子。

开始时间戳 价值 离群值
2021-07-19 07:27:51 21 错误的
2021-07-19 08:21:05 24 错误的
2021-07-19 08:20:18 22 错误的
2021-07-19 08:21:54 26 错误的
2021-07-19 08:21:23 25 错误的
2021-07-16 08:22:41 88 错误的

如何读取包括分区列在内的完整数据,如果有其他选择,请告诉我。

4

0 回答 0