无法在Jupyter笔记本中绘制Pandas数据框

克里斯汀

我正在通过GCP集群打开的Jupyter笔记本中进行编码。我正在使用Spark-BigQuery连接器从BigQuery读取数据。我试图获取这些数据的子集并将其绘制出来,但是每当我尝试运行命令时,内核就会断开连接/重新连接。这是以前在我做错了事并且没有注意到的地方发生的(所以我知道这不仅仅是随机断开连接)。但是在这种情况下,我真的不知道我在做什么错。我正在做的事情与以下教程非常相似在GitHub上。我将数据读取到Spark Dataframe。然后,我将数据框转换为Pandas数据框并尝试将其绘制。这是发生错误的地方。我尝试了不同大小的子集,所以我知道这不会发生,因为我的数据集太大了。我还尝试过使用随机数创建“测试”数据框并进行绘制-效果很好。所以我的数据集一定是个问题...我只是不确定。代码如下:

读取以下数据:

import pandas as pd
import numpy as np
from pyspark.sql import SparkSession

spark = SparkSession.builder \
  .appName('Jupyter BigQuery Storage')\
  .config('spark.jars', 'gs://spark-lib/bigquery/spark-bigquery-latest_2.12.jar') \
  .getOrCreate()

table = "bigquery-public-data.ncaa_basketball.mbb_pbp_sr"
df = spark.read \
  .format("bigquery") \
  .option("table", table) \
  .load()
df.printSchema()

df.createOrReplaceTempView('df')

query_string = """
    SELECT event_type,
    season,
    type,
    team_alias,
    team_market,
    team_name,
    team_basket,
    event_id,
    event_coord_x,
    event_coord_y,
    three_point_shot,
    shot_made
    FROM df
    WHERE type = "fieldgoal"
        AND event_coord_x IS NOT NULL
        AND event_coord_y IS NOT NULL
    ORDER BY season
"""

df_shots = spark.sql(query_string)
df_shots.orderBy("season", "event_id").toPandas().head(5)

import matplotlib.pyplot as plt
%matplotlib inline

df_test = df_shots.toPandas()

test_new.plot(x='event_coord_x',y='event_coord_y',kind='line',figsize=(12,6))

最后一部分的输出仅为:

<matplotlib.axes._subplots.AxesSubplot at 0x7f355a732950>

然后内核断开/重新连接。作为参考,event_coord_x和event_coord_y均为float64类型。我不明白为什么会引起任何问题,但是我什至尝试将它们转换为整数并绘图,问题仍然存在。

我感觉这可能确实很琐碎,但是现在我很沮丧。抱歉,我没有错误消息之类的具体信息(因为没有错误信息)。任何建议都将大有帮助。

伊内斯

使用Cloud Dataproc 1.5 image version时,在绘制图形时,内核似乎消失并重新启动。从Jupyter的日志中可以看到它。该问题与Cloud Dataproc集群使用的Apache Knox有关。

Knox将websocket消息的大小限制为缓冲区大小,对于某些Jupyter交互来说,这是不够的。在下一个映像发行版中应该对此进行修复。

目前,解决方法是使用Cloud Dataproc 1.4映像版本或将figsize参数更改为较小的值。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法在Jupyter笔记本中绘图

如何根据python中pandas数据框中的列进行分组并按降序排列?(Jupyter笔记本)

如何遍历 Pandas 数据框的列并相应地删除行?(Jupyter 笔记本)

在jupyter笔记本中将多余的空格保留在熊猫数据框的显示中

在Jupyter笔记本中无法读取Avro

无法从此Docker容器中启动Jupyter笔记本

在jupyter笔记本中无法识别pythonnet clr

在 jupyter 笔记本中无法使用 iruby bash 命令

ModuleNotFoundError 在 Jupyter 笔记本中拥抱人脸数据集

Jupyter:无法创建新笔记本?

无法启动Jupyter笔记本

无法运行Jupyter笔记本

从Jupyter笔记本复制数据

jupyter笔记本中的内存错误

jupyter笔记本中的VS代码?

jupyter笔记本中的内存限制

在jupyter笔记本python中密谋

Jupyter笔记本中的Imagegrid

不同笔记本中的 Jupyter 类?

jupyter笔记本中的打字稿

在Firefox中冻结的jupyter笔记本

如何使用 Jupyter 笔记本打印出 Pandas 中 csv 文件中的每个数据值

如何在jupyter笔记本中逐行绘制4000张图像?

在 Jupyter 笔记本中并排绘制两个 matplotlib.image.AxesImage 对象

在python jupyter笔记本中将列表转换为数据框

如何在jupyter笔记本中将整个熊猫数据框向右移?

无法将 matplotlib 图导出到 Excel 工作表 --- 使用 matplotlib 到 Excel 在 Jupyter 笔记本中绘制图形

即使安装了Anaconda和笔记本,Jupyter笔记本也无法识别

无法访问Jupyter笔记本中的Anaconda软件包