我没有收到我的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'