Я работаю с Jupyter Hub, установленным в Docker, в кластере AWS.В этом Jupyter Hub есть ядра python, pyspark, pyspark3, и я создаю новый ноутбук с ядром pyspark.Это означает, что Jupyter создает сеанс Livy из док-контейнера наружу, в кластер, где установлена искра.Кроме того, Python2.7 установлен вне докера.Итак, если в моей записной книжке pyspark я начинаю свою ячейку с
%matplotlib inline
import matplotlib as mpl
import matplotlib.pyplot as plt
x = np.linspace(0, 10, 100)
plt.plot(x, x, label='linear')
, я получаю простой график, все в порядке.То же самое, если я создаю простых панд df, я могу построить все правильно.Означает ли это, что в этой ячейке я работаю с локальным (установленным в докерской версии python) питоном, без явного запуска ячейки с волшебным словом %% local?Или эта ячейка работает с внешним питоном, установленным вне контейнера докера?Я в замешательстве ...
В следующей ячейке я делаю часть pyspark:
from pyspark import SparkContext, SparkConf
from pyspark import SQLContext
from pyspark.sql.functions import *
Я вижу, что сеанс spark создается только после того, как я выполню эту ячейку.Поэтому я создаю rdd, затем запускаю фрейм данных, затем конвертирую его в фрейм данных pandas и пытаюсь построить гистограмму:
pandas_dfa.hist(bins=10)
, но вместо графика я вижу это:
array([[<matplotlib.axes._subplots.AxesSubplot object at 0x7fc23d6e89d0>]], dtype=object)
Я могуне понимаю почему?В предыдущей ячейке все шло хорошо.
Если я снова напишу в этой же ячейке
%matplotlib inline
import matplotlib.pyplot as plt
pandas_dfa.hist(bins=10)
Я получаю ошибку: NameError: имя 'pandas_dfa' не определено