Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache spark Spark结构化流媒体中未从S3拾取新数据_Apache Spark_Apache Spark Sql_Spark Structured Streaming - Fatal编程技术网

Apache spark Spark结构化流媒体中未从S3拾取新数据

Apache spark Spark结构化流媒体中未从S3拾取新数据,apache-spark,apache-spark-sql,spark-structured-streaming,Apache Spark,Apache Spark Sql,Spark Structured Streaming,我试图在Spark结构化流媒体中从S3存储桶读取数据。下面的代码用于获取现有数据。但是,当新数据添加到存储桶中时,Spark不会选择该数据 val lines=spark.readStream.schemaschemaImp.formatcom.databricks.spark.avro.loads3n://bucket/* val query=lines.writeStream.outputModeappend.formatmemory.QueryNameTable.start query.p

我试图在Spark结构化流媒体中从S3存储桶读取数据。下面的代码用于获取现有数据。但是,当新数据添加到存储桶中时,Spark不会选择该数据

val lines=spark.readStream.schemaschemaImp.formatcom.databricks.spark.avro.loads3n://bucket/* val query=lines.writeStream.outputModeappend.formatmemory.QueryNameTable.start query.processAllAvailable spark.sqlselect*来自memtable.show
如何使此工作能够获取新数据?或者,这是一个还不受支持的功能吗

首先对本地FS进行测试。如果它在那里工作,但不针对S3,那么S3重命名/提交就是一个怪癖。如果它对本地FS不起作用,那么这就是您使用流媒体的方式。也许可以尝试在调用.map时记录日志的测试,以便计算实际使用情况


如果您使用的是流式存储和对象存储,a使用s3a而不是s3n,b直接保存到对象存储路径,而不是保存+重命名-您只需要这样做,以避免在文件系统上处理不完整的数据,在文件系统中,文件在写入时可见

尝试了本地文件系统,这是相同的行为。我猜当我将输出流式传输到内存中的表时,输出不会拾取新数据。我试图绕过结构化流的限制,这种限制阻止对输入进行多个聚合操作。如果我可以获得输出流以获取更新,我可以执行任意数量的聚合操作。希望这有意义。我已将输出日志上载到。显示小表格的部分从S3中的第一个文件中选取。下面的行是在我向S3添加新文件后生成的。因此,Spark会检测新文件,但不会将更新流式传输到输出表。