齐柏林飞艇&spark.ipyspark&叶片

时间:2018-08-06 21:27:33

标签: python pyspark ipython apache-zeppelin folium

我非常喜欢folium在jupyter笔记本上与python一起工作的方式(我没有尝试过,但是从教程中判断)。我要实现的功能是相同的,但对于使用spark.ipyspark的齐柏林飞艇笔记本电脑而言。 Folium功能将极大地改善齐柏林飞艇笔记本的数据绘图功能。

我尝试过的很简单:

import folium
m = folium.Map(location=[45.5236, -122.6750])
m

这仅返回<folium.folium.Map at 0x10f4a3518>

我接下来尝试的是构建HTML映射,将其保存在本地,然后将其调用为Zeppelin段落的输出。

import folium
from IPython.display import HTML
from IPython.display import IFrame


m =folium.Map(
location=[45.5236, -122.6750],
tiles='Stamen Toner',
zoom_start=13
)

m.render_iframe = True
m.save('/Users/abc/m.html')

HTML("<iframe src=file:///Users/abc/m.html width=700 height=350></iframe>")

谁又给了我

<IPython.core.display.HTML object>

然后我与交换了最后一行:

IFrame("src=file:///Users/abc/m.html", width=700, height=350)

再次:

<IPython.lib.display.IFrame at 0x112882c88>

当我尝试使用以下命令打印python时:

print("%html <iframe src=file:///Users/abc/m.html  width=700, height=350></iframe>")

我得到700x350空白的白色窗口作为该段的输出。当我尝试将src更改为“ https://zeppelin.apache.org/”时,效果很好。

我觉得有两件事不能正常工作。 1.带齐柏林飞艇笔记本电脑的Folium模块未正确调用地图。 2.显示本地HTML页面作为齐柏林飞艇段落的输出。

有人尝试过吗?有人成功克服了这个问题吗?

1 个答案:

答案 0 :(得分:2)

感谢您的建议,我可以通过添加以下内容来运行它:

html_string = m.get_root().render()

print("%html", html_string)

所以现在整个代码如下:

import folium

m =folium.Map(
location=[45.5236, -122.6750],
tiles='Stamen Toner',
zoom_start=13,
width=600,height=300
)
html_string = m.get_root().render()

print("%html", html_string)

编辑: 使用上述方法修改了整个齐柏林飞艇笔记本的外观。我使用了不同的方法,使用html_string = m._repr_html_(),根据jupyter中用于在iframe中显示HTML的此链接(github.com/python-visualization/folium/issues/781)。

现在编码:

import folium

m =folium.Map(
location=[45.5236, -122.6750],
tiles='Stamen Toner',
zoom_start=13,
width=600,height=300
)
html_string = m._repr_html_()
print("%html", html_string)