【问题标题】:How to serialize gensim corpus in pyspark using apache-zeppelin notebook?如何使用 apache-zeppelin 笔记本在 pyspark 中序列化 gensim 语料库?
【发布时间】:2018-07-02 09:41:52
【问题描述】:

我正在尝试创建一个 gensim 语料库并将其保存到任意 HDFS 或常规 FS 路径。我正在使用 pyspark (2.2.1) 并在 hadoop 集群上运行 zeppelin 笔记本。这是我的最小示例:

from gensim import corpora
import os

path = "/my/existing/hadoop/path"
corpus = [[(0,0), (1,2)]]
corpora.MmCorpus.serialize(os.path.join(path,"corpus.mm"), corpus)

这会导致错误:

[Errno 2] No such file or directory: '/my/existing/hadoop/path/corpus.mm' 

虽然路径存在。

运行以下工作。

corpora.MmCorpus.serialize("corpus.mm", corpus)
corpora.MmCorpus.serialize(os.path.join("/tmp","corpus.mm"), corpus)

但是,我找不到它。我检查了/tmphadoop fs -ls /tmp 使用 pyspark 时需要什么样的路径?

【问题讨论】:

    标签: hadoop serialization pyspark gensim apache-zeppelin


    【解决方案1】:

    使用 pyspark 时需要什么样的路径?

    保存常规路径时需要常规路径。 只需要确保 zeppelin 有权写入所需的位置。您还必须知道当前会话在集群的哪个节点上运行。

    运行以下工作。

    corpora.MmCorpus.serialize("corpus.mm", corpus) corpus.MmCorpus.serialize(os.path.join("/tmp","corpus.mm"), corpus)

    位置可以简单地找到

    import os
    print(os.getcwd())
    

    【讨论】:

      猜你喜欢
      • 2016-12-25
      • 1970-01-01
      • 2016-06-13
      • 2016-06-23
      • 2018-12-05
      • 1970-01-01
      • 2018-11-01
      • 1970-01-01
      • 2018-12-08
      相关资源
      最近更新 更多