Pyspark Spark流处理二进制数据文件

Pyspark Spark流处理二进制数据文件,pyspark,spark-streaming,Pyspark,Spark Streaming,我正在使用pyspark 1.6.0 我有现有的pyspark代码来读取AWS S3存储桶中的二进制数据文件。其他Spark/Python代码将解析数据中的位以转换为int、string、boolean等。每个二进制文件都有一条数据记录 在PYSPARK中,我使用以下命令读取二进制文件: sc.binaryFiles(“s3n://……”) 这是伟大的工作,因为它提供了一个元组(文件名和数据),但我正试图找到一个等效的PYSPARK流API来读取二进制文件作为流(希望文件名,如果可以的话) 我试

我正在使用pyspark 1.6.0

我有现有的pyspark代码来读取AWS S3存储桶中的二进制数据文件。其他Spark/Python代码将解析数据中的位以转换为int、string、boolean等。每个二进制文件都有一条数据记录

在PYSPARK中,我使用以下命令读取二进制文件: sc.binaryFiles(“s3n://……”)

这是伟大的工作,因为它提供了一个元组(文件名和数据),但我正试图找到一个等效的PYSPARK流API来读取二进制文件作为流(希望文件名,如果可以的话)

我试过: binaryRecordsStream(目录,记录长度)

但我无法让它工作


任何人都可以分享PYSPARK streaming如何读取二进制数据文件的一些信息吗?

在Spark streaming中,相关的概念是fileStream API,它在Scala和Java中可用,但在Python中不可用-在文档中有说明:。如果您正在读取的文件可以作为文本文件读取,您可以使用

我对Java Spark有一个类似的问题,我想从S3流式传输更新,并且没有简单的解决方案,因为
binaryRecordsStream(,)
API仅用于固定字节长度的记录,并且找不到与
JavaSparkContext.binaryFiles()明显等效的文件。在阅读了
binaryFiles()
在封面下所做的工作后,解决方案是:

JavaPairInputDStream<String, PortableDataStream> rawAuctions = 
        sc.fileStream("s3n://<bucket>/<folder>", 
                String.class, PortableDataStream.class, StreamInputFormat.class);
JavaPairInputStream=
sc.fileStream(“s3n://”,
String.class、PortableDataStream.class、StreamInputFormat.class);
然后解析来自
PortableDataStream
对象的单个字节消息。对于Java上下文,我深表歉意,但也许您可以用PYSPARK做一些类似的事情