Jupyter + PySpark 自动完成
Posted
技术标签:
【中文标题】Jupyter + PySpark 自动完成【英文标题】:Jupyter + PySpark autocomplete 【发布时间】:2019-01-23 21:00:55 【问题描述】:抱歉新手 Jupyter 问题 -
我已经使用本手册安装了 Jupyter 和 PySpark - https://blog.sicara.com/get-started-pyspark-jupyter-guide-tutorial-ae2fe84f594f
似乎一切正常,但我没有自动完成某些“嵌套”功能
例如 - 运行“spark” -> 我得到 spark 会话
当我在“spark”之后按 Tab 键时。 -> 我得到了可能的建议列表,例如“阅读”
但在 spark.read 之后按 Tab。不显示任何东西。虽然我希望显示诸如“csv”、“parquat”等选项......
重要提示 - 运行 "spark.read.csv("1.txt")" 有效
另外 - 尝试应用来自 `ipython` tab autocomplete does not work on imported module 的建议,但没有成功
我错过了什么?
【问题讨论】:
原因可能比较平淡;我想 spark 很重,因此解析依赖项需要很多时间。如果返回的建议数量太大(或花费太多时间),该进程可能会被终止,您可能需要检查一下。 感谢您的建议!我怎样才能检查这个?顺便说一句 - 当我运行 a=spark.read 时。然后运行一个。我开发了一个基于 TabNine 的 Jupyter Notebook Extension,它提供了基于深度学习的代码自动完成功能。当然它也支持Pyspark
。这是我工作的 Github 链接:jupyter-tabnine。
现在在pypi index 上可用。只需发出以下命令,然后享受它:)
pip3 install jupyter-tabnine
jupyter nbextension install --py jupyter_tabnine
jupyter nbextension enable --py jupyter_tabnine
jupyter serverextension enable --py jupyter_tabnine
【讨论】:
【参考方案2】:这可以通过手动导入或设置 python 的 .env 变量来完成。
-
在 python 会话/笔记本中。
import rlcompleter, readline
readline.parse_and_bind("tab: complete")
-
在 PySpark 启动时启用它 - 我的情况。
.bash_profile
export PYTHONSTARTUP="$HOME/.pythonrc"
.pythonrc
import rlcompleter, readline
readline.parse_and_bind("tab: complete")
【讨论】:
以上是关于Jupyter + PySpark 自动完成的主要内容,如果未能解决你的问题,请参考以下文章
为什么Jupyter Notebook中没有突出显示错误和自动完成功能?
Python 数据类型到 pyspark.sql.types 的自动转换