2015-10-06 32 views
14

Jestem nowy na zeppelinie. Mam przypadek, w którym mam pandasową ramkę danych. Muszę wizualizować kolekcje za pomocą wbudowanego wykresu zeppelina. Nie mam tu jasnego podejścia. MOJE zrozumienie dotyczy zeppelina, możemy wizualizować dane, jeśli jest to format RDD. Tak więc chciałem przekonwertować ramkę danych pandy na iskrową ramkę danych, a następnie wykonać pewne zapytania (używając sql), zwizualizuję. Na początku próbowałem konwertować pandy dataframe iskra, ale nie udało mi sięKonwersja ramek danych pandy na iskrową ramkę danych w zeppelinie

%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() 

i mam poniżej błąd

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'> 

Czy ktoś mógłby mi pomóc? Popraw mnie, jeśli nigdzie się nie mylę.

Odpowiedz

5

Właśnie skopiowałem i wkleiłem twój kod do notatnika i działa.

%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| 
+---+-+ 

używam tej wersji: zeppelin-0.5.0-inkubację-bin-zapłonem 1.4.0_hadoop-2.3.tgz

0

Spróbuj ustawić SPARK_HOME i PYTHONPATH zmiennych w bashu, a następnie ponowne uruchomienie go

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 
11

następujące prace dla mnie Zeppelin 0.6.0, 1.6.2 i Spark Python 3.5.2:

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

, który renderuje jako:

enter image description here

Powiązane problemy