Zeppelin 中的 python.sql 错误:NameError: name 'pysqldf' is not defined
Posted
技术标签:
【中文标题】Zeppelin 中的 python.sql 错误:NameError: name \'pysqldf\' is not defined【英文标题】:python.sql in Zeppelin error: NameError: name 'pysqldf' is not definedZeppelin 中的 python.sql 错误:NameError: name 'pysqldf' is not defined 【发布时间】:2021-02-11 09:48:42 【问题描述】:Apache Zeppelin(版本 0.9.0-preview1)的新功能。 IT 安装了它,并一直在创建一个新笔记本。尝试使用 python.sql 并出现错误:NameError: name 'pysqldf' is not defined.
笔记本第 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 行失败:zeppelin.show(pysqldf('SELECT COUNT(primaryTitle), startYear FROM dfTitles WHERE startYear > 1980 AND startYear
我确实阅读了SQL over Pandas DataFrames 文档,它说先决条件是运行:
pip install pandas
pip install -U pandasql
但我无法在笔记本中运行这些。如果我需要运行它们,我从哪里运行它们?
【问题讨论】:
【参考方案1】:通过让 IT 重新启动 Zeppelin 服务器解决了该问题。
服务器可能内存不足,因为我在没有清理内存的情况下创建了一堆数据帧等。
我不必运行“pip install”命令。
得到这个结果图表:
【讨论】:
以上是关于Zeppelin 中的 python.sql 错误:NameError: name 'pysqldf' is not defined的主要内容,如果未能解决你的问题,请参考以下文章
Apache Zeppelin 中的 org/bson/conversions/Bson 错误
zeppelin aws中的spark python错误运行程序