Python 火花管中的数据变化

Python 火花管中的数据变化,python,apache-spark,pyspark,Python,Apache Spark,Pyspark,因此,我使用RDD.pipe()函数将一些二进制数据传输到“cat”,当我收到数据时,它会被更改,因此我无法处理它。如果我死了,如何修复它? 我在用蟒蛇3 数据的代码和PAR如下: line = sc.binaryFiles("files/pipevids") line.map(lambda x:x[1]).pipe("cat").take(1) 原始数据: b'RIFF\xeaU\n\x00AVI LIST\x963\x00\x00hdrlavih8\x00\x00\x005\x82\x00

因此,我使用RDD.pipe()函数将一些二进制数据传输到“cat”,当我收到数据时,它会被更改,因此我无法处理它。如果我死了,如何修复它? 我在用蟒蛇3 数据的代码和PAR如下:

line = sc.binaryFiles("files/pipevids")
line.map(lambda x:x[1]).pipe("cat").take(1)
原始数据:

b'RIFF\xeaU\n\x00AVI LIST\x963\x00\x00hdrlavih8\x00\x00\x005\x82\x00\x00\x08L\x01\x00\x00\x00\x00\x00\x10\t\x00\x00<\x00\x00\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x10\x00\x80\x07\x00\x008\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00LIST\x10\x11\x00\x00strlstrh8\x00\x00\x00vidsFMP4\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\x1e\x00\x00\x00\x00\x00\x00\x00<\x00\x00\x00\x11x\x00\x00\xff\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x80\x078\x04strfX\x00\x00\x00W\x00\x00\x00\x80\x07\x00\x008\x04\x00\x00\x01\x00\x18\x00FMP4\x00\xec^\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x01\xb0\x01\x00\x00\x01\xb5\x89\x13\x00\x00\x01\x00\x00\x00\x01 \x00\xc4\x8d\x88\x00\xf5<\x04\x87\x14C\x00\x00\x01\xb2Lavc57.89.100\x00JUNK\x18\x10\x00\x00\x04\x00\x00\x00\x00\x00\x00\x0000dc\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x

这是因为
pipe
需要
str
对象

>>> str(b'RIFF\xeaU\n\x00AVI')
"b'RIFF\\xeaU\\n\\x00AVI'"
>>> 
如果您想要特定的表示,您应该在传递到
管道
之前对数据进行
解码


不幸的是,结果被自动解码为UTF-8,因此您在这里不能做很多事情

你能打印出它的
type()
吗?我假设一个是bytes,另一个是str?你能解释一下
cat
在这里为你提供了什么用途吗?不,这只是我给一个名为FFMPEG的外部程序做的示例,实际代码是:line.map(lambda x:x[1]).pipe(“FFMPEG-loglevel debug-y-I pipe:0-f avi pipe:1”)。我想这里不需要管道。。。您想映射一个
os.system
调用。。。此外,我甚至不确定
ffmpeg
是否接受二进制数据ffmpeg是否接受二进制数据如果cat和管道将其传输到二进制它工作正常,问题是我正在将二进制数据加载到RDD中,我不想在每个进程下载时都存储数据,实际上我想解析二进制数据而不是字符串,因为ffmpeg需要输入二进制数据
"ffmpeg -loglevel debug -y -i pipe:0 -f avi pipe:1"
>>> str(b'RIFF\xeaU\n\x00AVI')
"b'RIFF\\xeaU\\n\\x00AVI'"
>>>