Как построить с использованием pyspark? - PullRequest
0 голосов
/ 23 октября 2018

Мне нужно построить два независимых столбца: первый представляет данные, второй - время:

All_packets= df.select("ip_adr_src","asn_val","timestamp")
EB_packets=All_packets.filter("asn_val is not NULL")
EB_packets.show()
plotdf=EB_packets.select("asn_val","timestamp")

Я хочу построить ans_val группу по ip_adr_src per time.Если у меня 6 ip_adr_src, я ожидаю 6 кривых.

+--------------------+---------------------------------+-------------+
|     ip_adr_src     |asn_val                          |    timestamp|
+--------------------+---------------------------------+-------------+
|14:15:92:cc:00:01...|                              707|1539071748441|
|14:15:92:cc:00:02...|                             1212|1539071752314|
|14:15:92:cc:00:00...|                             1616|1539071755578|
|14:15:92:cc:00:04...|                             1818|1539071757167|
|14:15:92:cc:00:03...|                             2020|1539071759297|
|14:15:92:cc:00:00...|                             2121|1539071760408|
|14:15:92:cc:00:09...|                             2323|1539071764035|
|14:15:92:cc:00:07...|                             2424|1539071765775|
|14:15:92:cc:00:00...|                             2525|1539071768560|
|14:15:92:cc:00:06...|                             5858|1539071845370|
|14:15:92:cc:00:00...|                             6060|1539071850129|
|14:15:92:cc:00:05...|                             6262|1539071855046|
|14:15:92:cc:00:00...|                             6969|1539071872523|
|14:15:92:cc:00:07...|                             6969|1539071872528|
|14:15:92:cc:00:08...|                             7171|1539071877609|

Но все мои тесты неверны, и у меня есть эта ошибка:

Dataframe doesn't have an object `'plot'`

Я был бы очень признателен, если бы вы могли мне помочь.

1 Ответ

0 голосов
/ 23 октября 2018

Я не уверен, что понял, какой столбец вы хотите построить, но я подозреваю, что вам нужна помощь в построении графика.Вот так я бы построил столбец ans_val против столбца timestamp:

import matplotlib.pyplot as plt

y_ans_val = [val.ans_val for val in df.select('ans_val').collect()]
x_ts = [val.timestamp for val in df.select('timestamp').collect()]

plt.plot(x_ts, y_ans_val)

plt.ylabel('ans_val')
plt.xlabel('timestamp')
plt.title('ASN values for time')
plt.legend(['asn_val'], loc='upper left')

plt.show()

Если вам нужно построить другие столбцы, вызовите команду plt.plot(x,y) несколько раз и добавьте каждое имя в plt.legend(your_cols, loc='upper left') функция.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...