将Spark protobuf RDD保存到tfrecords

时间:2019-08-04 20:27:27

标签: tensorflow pyspark

我有一个例程可以将tf.Example个原型保存到tfrecords:

with tf.python_io.TFRecordWriter("dataset.tfrecord") as writer:
     writer.write(proto)

我有一个充满tf.Example的Spark RDD。我不想使用saveAsTextFile将它们写入磁盘,而是想使用tf.python_io.TFRecordWriter保存它们。我该怎么办?

1 个答案:

答案 0 :(得分:1)

您可以尝试Spark-TFRecord。

这里是一个例子:

val df = Seq((8, "bat"),(8, "abc"), (1, "xyz"), (2, "aaa")).toDF("number", "word")
val tf_output_dir = "/tmp/tfrecord-test"
df.write.format("tfrecord").option("recordType", "Example").save(path)

您需要安装spark-tfrecord。可以在github repo上找到详细信息: https://github.com/linkedin/spark-tfrecord