2015-10-06 5 views
14

Ich bin neu in Zeppelin. Ich habe einen Anwendungsfall, in dem ich einen Pandas-Dataframe habe. Ich muss die Sammlungen visualisieren, indem ich ein eingebautes Zeppelin-Diagramm verwende. Ich habe hier keinen klaren Ansatz. Mein Verständnis ist mit Zeppelin, wir können die Daten visualisieren, wenn es ein RDD-Format ist. Also, ich wollte zu Pandas Dataframe in Spark Dataframe konvertieren, und dann einige Abfragen (mit SQL), werde ich visualisieren. Zunächst versuchte ich Pandas Datenrahmen zu konvertieren ist zu funken, aber ich gescheitertkonvertieren pandas datenframes zu funken datenframe in zeppelin

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

Und ich habe die folgenden Fehler

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

Kann mir bitte jemand helfen hier? Korrigiere mich auch, wenn ich irgendwo falsch liege.

Antwort

5

Ich habe gerade Ihren Code in ein Notebook kopiert und eingefügt und es funktioniert.

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

Ich bin mit dieser Version: zeppelin-0.5.0-Inkubations-bin-Funke 1.4.0_hadoop-2.3.tgz

0

Versuchen Sie, das SPARK_HOME und PYTHONPATH Variablen in der Bash Einstellung und dann erneut ausführen

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

Die folgenden Werke für mich mit Zeppelin 0.6.0 Spark 1.6.2 und Python 3.5.2:

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

die als rendert:

enter image description here

Verwandte Themen