我已经准备好pyspark代码以在我的Spark Streaming中从AWS Kinesis读取数据。代码运行正常,没有任何错误,但未获取任何记录。
我仅用一个分片创建了一个运动学数据流,并使用Kinesis utils创建了运动学火花流。
spark_session = SparkSession.builder.getOrCreate()
ssc = StreamingContext(spark_session.sparkContext, 10)
sc = spark_session.sparkContext
Kinesis_app_name = "test"
Kinesis_stream_name = "aip4_idc_sensor_data"
endpoint_url = "kinesis.us-east-1.amazonaws.com"
region_name = "us-east-1"
data = KinesisUtils.createStream(
ssc, Kinesis_app_name, Kinesis_stream_name, endpoint_url,
region_name, InitialPositionInStream.LATEST, 10, StorageLevel.MEMORY_AND_DISK_2)
data.pprint()
ssc.start() # Start the computation
ssc.awaitTermination() # Wait for the computation to terminate
aws命令放置记录:
aws kinesis put-record-流名称aip4_icd_sensor-数据“测试”-分区键“六十”
答案 0 :(得分:0)
对我来说,问题在于我的运动学基础远远落后于最新发展。即使它连接到运动学,它仍然试图读取旧的空记录。 最好的方法是转到DynamoDB,您将看到一个与kinesisAppName相同名称的表。删除它,然后尝试再次运行。这个对我有用。立刻,我从信息流中获得了最新记录