Zeppelin中的python.sql错误:NameError:未定义名称'pysqldf'

问题描述

Apache Zeppelin的新手(版本0.9.0-preview1)。 IT安装了它,并正在创建一个新的笔记本。尝试使用python.sql并出现错误 NameError:未定义名称'pysqldf'

笔记本第1段:

%python
# download IMDB files,store in pandas dataframes
import pandas as pd
import numpy as np
dfTitles = pd.read_csv('https://datasets.imdbws.com/title.basics.tsv.gz',sep='\t',header=0,compression='gzip',index_col='tconst',usecols=['tconst','titleType','primaryTitle','originalTitle','startYear','endYear','runtimeMinutes','genres'],dtype='str')

# clean up and transform data
dfTitles.replace(to_replace={'startYear': r'\N','endYear': r'\N','runtimeMinutes': r'\N','genres': r'\N'},value={'startYear': '0','endYear': '0','runtimeMinutes': '0','genres': ''},inplace=True)
dfTitles = dfTitles.astype({'startYear': 'int32','endYear': 'int32'})

笔记本第2段:

%python.sql
SELECT COUNT(primaryTitle),startYear FROM dfTitles WHERE startYear > ${minYear=1980} AND startYear <= 2020 GROUP BY startYear ORDER BY startYear

第1款运行正常。运行第2段后出现错误

无法执行第1行:齐柏林飞艇。show(pysqldf('SELECT COUNT(primaryTitle),起始年份为dfTitles,起始年份> 1980 AND startYear

我确实阅读了SQL over Pandas DataFrames文档,并说要运行先决条件:

pip install pandas
pip install -U pandasql

但是我无法在笔记本电脑上运行它们。如果我需要运行它们,应该从哪里运行它们?

解决方法

通过IT重新启动Zeppelin服务器来解决此问题。

由于我创建了一堆数据帧等,而服务器没有用完内存,因此服务器内存可能已用完。

我不必运行“ pip install”命令。

得到以下结果图表: enter image description here