2015-10-06 41 views
14

Tôi mới sử dụng zeppelin. Tôi có một usecase trong đó tôi có một con gấu trúc dataframe.I cần phải hình dung các bộ sưu tập bằng cách sử dụng trong xây dựng biểu đồ của zeppelin tôi không có một cách tiếp cận rõ ràng ở đây. Sự hiểu biết của tôi là với zeppelin, chúng ta có thể hình dung dữ liệu nếu nó là một định dạng RDD. Vì vậy, tôi muốn chuyển đổi để gấu trúc dataframe vào dataframe tia lửa, và sau đó làm một số truy vấn (bằng cách sử dụng sql), tôi sẽ hình dung. Để bắt đầu, tôi đã cố gắng để chuyển đổi gấu trúc dataframe châm ngòi nhưng tôi đã thất bạichuyển đổi các khung dữ liệu gấu trúc để kích hoạt khung dữ liệu trong 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() 

Và tôi đã nhận lỗi dưới đây

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

Có thể ai đó hãy giúp tôi ra đây? Ngoài ra, sửa tôi nếu tôi sai ở bất cứ đâu.

Trả lời

5

Tôi vừa sao chép và dán mã của bạn vào sổ ghi chép và nó hoạt động.

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

Tôi đang sử dụng phiên bản này: khí cầu zeppelin-0.5.0-ấp-bin-spark-1.4.0_hadoop-2.3.tgz

0

Hãy thử thiết lập các biến SPARK_HOME và PYTHONPATH trong bash và sau đó chạy lại nó

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

Các công trình sau đây cho tôi với Zeppelin 0.6.0, Spark 1.6.2 và Python 3.5.2:

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

được hiển thị là:

enter image description here

Các vấn đề liên quan