Подтвердить что ты не робот

Преобразование фреймов данных pandas для искроберивания кадра данных в zeppelin

Я новичок в zeppelin. У меня есть usecase, у меня есть pandas dataframe. Мне нужно визуализировать коллекции, используя встроенную диаграмму zeppelin. У меня нет четкого подхода. Я понимаю, что с zeppelin мы можем визуализировать данные, если это формат RDD. Итак, я хотел преобразовать в pandas dataframe в блок данных искры, а затем сделать некоторые запросы (используя sql), я буду визуализировать. Для начала я попытался преобразовать pandas dataframe в искру, но я не смог

%pyspark
import pandas as pd
from pyspark.sql import SQLContext
print sc
df = pd.DataFrame([("foo", 1), ("bar", 2)], columns=("k", "v"))
print type(df)
print df
sqlCtx = SQLContext(sc)
sqlCtx.createDataFrame(df).show()

И я получил ошибку ниже

Traceback (most recent call last): File "/tmp/zeppelin_pyspark.py", 
line 162, in <module> eval(compiledCode) File "<string>", 
line 8, in <module> File "/home/bala/Software/spark-1.5.0-bin-hadoop2.6/python/pyspark/sql/context.py", 
line 406, in createDataFrame rdd, schema = self._createFromLocal(data, schema) File "/home/bala/Software/spark-1.5.0-bin-hadoop2.6/python/pyspark/sql/context.py", 
line 322, in _createFromLocal struct = self._inferSchemaFromList(data) File "/home/bala/Software/spark-1.5.0-bin-hadoop2.6/python/pyspark/sql/context.py", 
line 211, in _inferSchemaFromList schema = _infer_schema(first) File "/home/bala/Software/spark-1.5.0-bin-hadoop2.6/python/pyspark/sql/types.py", 
line 829, in _infer_schema raise TypeError("Can not infer schema for type: %s" % type(row)) 
TypeError: Can not infer schema for type: <type 'str'> 

Может кто-нибудь, пожалуйста, помогите мне здесь? Кроме того, исправьте меня, если я где-то не прав.

4b9b3361

Ответ 1

Следующие работы для меня с Zeppelin 0.6.0, Spark 1.6.2 и Python 3.5.2:

%pyspark
import pandas as pd
df = pd.DataFrame([("foo", 1), ("bar", 2)], columns=("k", "v"))
z.show(sqlContext.createDataFrame(df))

который отображается как:

enter image description here

Ответ 2

Я только что скопировал и вставил ваш код в блокнот, и он работает.

%pyspark
import pandas as pd
from pyspark.sql import SQLContext
print sc
df = pd.DataFrame([("foo", 1), ("bar", 2)], columns=("k", "v"))
print type(df)
print df
sqlCtx = SQLContext(sc)
sqlCtx.createDataFrame(df).show()

<pyspark.context.SparkContext object at 0x10b0a2b10>
<class 'pandas.core.frame.DataFrame'>
     k  v
0  foo  1
1  bar  2
+---+-+
|  k|v|
+---+-+
|foo|1|
|bar|2|
+---+-+

Я использую эту версию: дирижабль-0.5.0-Инкубация-бен-искровой 1.4.0_hadoop-2.3.tgz

Ответ 3

Попробуйте установить переменные SPARK_HOME и PYTHONPATH в bash, а затем перезапустите его

    export SPARK_HOME=path to spark
    export PYTHONPATH=$SPARK_HOME/python:$SPARK_HOME/python/build:$PYTHONPATH
    export PYTHONPATH=$SPARK_HOME/python/lib/py4j-0.8.2.1-src.zip:$PYTHONPATH