如何使用 apache-zeppelin notebook 在 pyspark 中序列化 gensim 语料库?
How to serialize gensim corpus in pyspark using apache-zeppelin notebook?
我正在尝试创建一个 gensim 语料库并将其保存到任意 HDFS 或常规 FS 路径。我在 hadoop 集群上使用 pyspark (2.2.1) 和 运行 飞艇笔记本。这是我的最小示例:
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)
但是,我找不到它。我检查了 /tmp
和 hadoop fs -ls /tmp
使用 pyspark 时需要什么样的路径?
What kind of path is required when working with pyspark?
保存常规路径时需要常规路径。
只需要确保zeppelin 有权写入所需位置即可。您还必须知道集群的哪个节点是当前会话运行。
Running the following works.
corpora.MmCorpus.serialize("corpus.mm", corpus)
corpora.MmCorpus.serialize(os.path.join("/tmp","corpus.mm"), corpus)
可以通过
简单地找到位置
import os
print(os.getcwd())
我正在尝试创建一个 gensim 语料库并将其保存到任意 HDFS 或常规 FS 路径。我在 hadoop 集群上使用 pyspark (2.2.1) 和 运行 飞艇笔记本。这是我的最小示例:
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)
但是,我找不到它。我检查了 /tmp
和 hadoop fs -ls /tmp
使用 pyspark 时需要什么样的路径?
What kind of path is required when working with pyspark?
保存常规路径时需要常规路径。 只需要确保zeppelin 有权写入所需位置即可。您还必须知道集群的哪个节点是当前会话运行。
Running the following works.
corpora.MmCorpus.serialize("corpus.mm", corpus) corpora.MmCorpus.serialize(os.path.join("/tmp","corpus.mm"), corpus)
可以通过
简单地找到位置import os
print(os.getcwd())