[英]how do I import a table DIRECTLY into a Python dataframe within databricks?
目前在 Databricks 的开发环境中使用笔记本应用一些 Python 代码来分析数据库表中保存的一些虚拟数据(只有几 1,000 行),然后我将其部署到主环境并在真实数据上运行, (数百万行)
首先,我只需要满足特定条件的单个列中的值,以便获取我目前正在执行的数据:
然后 Python 笔记本的 rest 对在开发环境中运行良好的数据进行处理,但是当我真正运行它时,它在第 2 行掉了下来,说它超出了 ZCD69B4957F06CD818D7ZBF3D691
我想将数据直接导入到 Pandas dataframe 中,因此无需从 Spark 转换,因为我假设这将避免错误,但经过大量谷歌搜索后,我仍然无法弄清楚如何,我唯一的事情是尝试过在语法上有效的是:
数据 = pd.read_table (r'database.table')
但只要得到:
'PermissionError:[Errno 13] 权限被拒绝:'
(nb。不幸的是,我无法控制我正在查询的数据库的内容、形式或位置)
你的假设很可能是不正确的。
Spark 是一个分布式计算引擎,pandas 是一个单节点工具集。 因此,当您对数百万行运行查询时,它可能会失败。 在执行 df.toPandas 时,Spark 会将所有数据移动到您的驱动程序节点,因此如果它超过驱动程序 memory,它将失败,并出现 memory 异常。 换句话说,如果您的数据集更大,那么 memory、pandas 将无法正常工作。
此外,在数据块上使用 pandas 时,您将失去使用底层集群的所有好处。 您只是在使用驱动程序。
有两个明智的选择可以解决这个问题:
对于这种情况,您必须使用pd.read_sql_query 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.