Как напечатать переменные или кадры данных на консоль в моей программе PySpark? - PullRequest
1 голос
/ 06 ноября 2019

Я новичок в Spark, пытаюсь использовать его так же, как я использовал Pandas для анализа данных.

В пандах, чтобы увидеть переменную, я напишу следующее:

import pandas as pd

df = pd.DataFrame({a:[1,2,3],b:[4,5,6]})
print(df.head())

В Spark мои операторы печати не выводятся на терминал. На основании комментария Дэвида к этому ответу операторы печати отправляются на stdout/stderr, и есть способ получить его с помощью пряжи, но он не говорит, как. Я не могу найти ничего, что имеет смысл с помощью Google, "как захватить стандартную искру".

То, что я хочу, - это способ увидеть биты моих данных, чтобы устранить неполадки в моем анализе данных. "Работало ли добавление этого столбца?"Что-то в этом роде. Я также приветствовал бы новые способы устранения неполадок, которые лучше подходят для огромных наборов данных.

1 Ответ

2 голосов
/ 06 ноября 2019

Да, вы можете использовать различные способы печати ваших фреймов данных:

>>> l = [[1, 1], [2, 2], [3, 3], [4, 4], [5, 5]]

>>> spark.createDataFrame(l, ["a", 'b']).show()
+---+---+
|  a|  b|
+---+---+
|  1|  1|
|  2|  2|
|  3|  3|
|  4|  4|
|  5|  5|
+---+---+

>>> print(spark.createDataFrame(l, ['a', 'b']).limit(5).toPandas())
   a  b
0  1  1
1  2  2
2  3  3
3  4  4
4  5  5

df.show() будет печатать 20 верхних строк, но вы можете передать число для этого, для n строк.

Вы также можете использовать df.limit(n).toPandas(), чтобы получить стиль панд df.head()

...