私はツェッペリンの初心者です。私はpandasデータフレームを持っているユースケースを持っています。私はここで明確なアプローチを持っていないzeppelinの組み込みチャートを使用してコレクションを視覚化する必要があります。データがRDD形式の場合は、データをpandas dataframeにspark dataframeに変換してから、(sqlを使用して)最初に、pandasデータフレームをスパークに変換しようとしましたが、失敗しました
%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'>
誰かがここで私を助けてくれますか?また、どこか間違っている場合は修正してください。
以下は、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))
次のようにレンダリングされます:
コードをコピーしてノートブックに貼り付けたところ、機能します。
%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|
+---+-+
このバージョンを使用しています:zeppelin-0.5.0-incubating-bin-spark-1.4.0_hadoop-2.3.tgz
BashでSPARK_HOMEおよびPYTHONPATH変数を設定してから再実行してください
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