如何使用Structured Streaming Pyspark在Amazon S3上编写流?

时间:2018-06-06 14:27:13

标签: python apache-spark amazon-s3 pyspark spark-structured-streaming

我没有收到我的s3存储桶中的数据,但我没有收到任何错误。我正在使用Spark 2.3.0和python。基本上,我试图让Datalake使用结构化流式Spark从Kafka中提取数据,我想将流写入S3存储桶,但我无法做到。我想知道怎么做。我的主要想法如下:

query = self.query_impressions \
        .writeStream \
        .format("parquet") \
        .option("checkpointLocation", self.join_path + "/applicationHistory").partitionBy("year", "month", "day", "hour") \
        .option("path", "s3a://datalake/test")

我不知道是否需要使用某些软件包,配置,权限或其他内容。我有这些配置:

import os
import time
import subprocess
from pyspark.sql import SparkSession
from pyspark.sql.types import *
from pyspark.sql.functions import *

os.environ['PYSPARK_SUBMIT_ARGS'] = '--packages org.apache.spark:spark-sql-kafka-0-10_2.11:2.3.0 \
  --conf spark.hadoop.fs.s3a.endpoint=s3.eu-central-1.amazonaws.com \
  --conf spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem \
  --conf spark.executor.extraJavaOptions=-Dcom.amazonaws.services.s3.enableV4=true \ 
  --conf spark.driver.extraJavaOptions=-Dcom.amazonaws.services.s3.enableV4=true \
  --conf spark.hadoop.fs.s3a.impl=org.apache.hadoop.fs.s3a.S3AFileSystem \
  --conf spark.hadoop.fs.s3a.endpoint=s3.us-east-1.amazonaws.com \
  --conf spark.hadoop.fs.s3a.access.key="xxx" \ 
  --conf spark.hadoop.fs.s3a.secret.key="yyy" \
  pyspark-shell'

0 个答案:

没有答案