如何在Zeppelin中的%pyspark解释器和%python解释器之间传递数据集?

时间:2018-08-19 08:35:17

标签: python pyspark apache-zeppelin

我正在编写代码,在其中使用内部库和%pyspark解释器来获取数据集。 但是我无法将数据集传递给%python解释器。我尝试使用字符串变量并且运行良好,但是对于数据集,我正在使用以下代码将数据集放入齐柏林飞艇上下文中-{ {1}}

并引发以下错误:

z.put("input_data",input_data)

您能告诉我该怎么做吗?预先感谢。

1 个答案:

答案 0 :(得分:1)

您可以通过将结果打印到%table来将其放入ResourcePool。

%python
print('%table a\tb\n408+\t+408\n0001\t++99\n40817810300001453030\t0000040817810300001453030')

然后以这种方式获得。

%spark.pyspark
ic = z.getInterpreterContext()
pool = ic.getResourcePool()
paragraphId = "20180828-093109_1491500809"
t = pool.get(ic.getNoteId(), paragraphId, "zeppelin.paragraph.result.table").get().toString()

print(t)

这种方式最多可以传输50-100兆字节的原始数据。

无论如何,我建议遵循@zjffdu仅使用这些解释器之一。