【发布时间】:2017-09-05 04:18:52
【问题描述】:
我使用 Zeppelin 0.7.1,有时我想传递非分布式数据类型,如 Seq 或 Array。目前我总是将它们转换为数据集并在 Python 中作为数据框获取它们。有没有更好的办法?
【问题讨论】:
我使用 Zeppelin 0.7.1,有时我想传递非分布式数据类型,如 Seq 或 Array。目前我总是将它们转换为数据集并在 Python 中作为数据框获取它们。有没有更好的办法?
【问题讨论】:
对于简单类型使用z ZeppelinContext 非常方便。
在 Spark 中
z.put("name", "zeppelin")
z.put("array", Array(1, 2, 3))
在 PySpark 中
%pyspark
z.get("name")
ar = z.get("array")
print(ar[0])
z.put("pyspark", "cool")
z.put("pyarray", [1, 2, 3])
再次在 Spark 中
z.get("pyspark")
val ar = z.get("pyarray").asInstanceOf[java.util.ArrayList[Int]]
对于复杂类型,可以在一侧为字符串添加序列化,在另一侧进行反序列化。
【讨论】: