Я использую pyspark для записи двоичных файлов, но содержимое отличается от того, что было написано в операции записи python.
pyspark saveAsTextFile:
rdd = sc.textFile(gidgid_output_dir+"/part-00000.snappy")\
.map(lambda x: json.loads(x))\
.map(lambda x:pack_data(x))\
.filter(lambda x: x!=None)
rdd.saveAsTextFile(train_output_dir)
вывод:
^@^@^@^@^@^@^@^@*^A^@^@^@^@^@^@�^A�̆^Of$n?�^N�;�T����6}���<P=�s<8e>��X�w�^Pi5^N7MP�`Z,��qh�^^�!^P^ATD�K^R�E^�O<83>�/'��F¸z��6���^?�r^X�&���-C�^Zj����<P=�3�T����6=�^Pi5^N7M^P�`Z,��q(�^^�!^P^AT^D�q�C$^Q[�^@?��;^G��^@}d^E�E�5#���>
написать по python:
rdd = sc.textFile(gidgid_output_dir+"/part-00000.snappy")\
.map(lambda x: json.loads(x))\
.map(lambda x:pack_data(x))\
.filter(lambda x: x!=None)\
.collect()
s = "".join(rdd)
with open("out.txt", "w") as ofile:
ofile.write(s)
выход:
^@^@^@^@^@^@^@^@*^A^@^@^@^@^@^@è^A<82>Ì<86>^Of$nò<89>´¡<94>^NÓ;ÂT<8b><85>ý<80>6}Âùæ<P=<8f>sÂ<8e><80><96>Xî<89>wÂ^Pi5^N7MPÂ`Z,<92>¬qhÂ^^ä!^P^ATDÂK^RE^ÒOÂ<83>Ð/'»ºF¸z§¬6°<82>Â^?<8c>r^X<98>&ÂÓ-Cì^Zj<8b>Âùæ<P=<8f>3ÅT<8b><85>ý<80
Те же входные данные, но другой результат, кажется, проблема с кодированием Как сделать содержимое, написанное с помощью saveAsTextFile, совместимым с содержимым, написанным python write.
Содержимое, написанное на python, - это то, что мне нужно в моей ситуации, и мне нужно спарк для параллельной обработки данных, мои данные слишком велики для сбора и записи с помощью операции записи на python .