2015-10-06 3 views
14

में डेटाफ्रेम को स्पार्क करने के लिए पांडा डेटाफ्रेम को कनवर्ट करना मैं ज़ेपेल्लिन के लिए नया हूं। मेरे पास एक उपयोगकाज है जिसमें मेरे पास पांडा डेटाफ्रेम है। मुझे ज़ेपेल्लिन के इन-बिल्ट चार्ट का उपयोग करके संग्रहों को देखने की आवश्यकता है, मेरे पास यहां एक स्पष्ट दृष्टिकोण नहीं है। मेरी समझ ज़ेपेल्लिन के साथ है, यदि हम आरडीडी प्रारूप हैं तो हम डेटा को कल्पना कर सकते हैं। तो, मैं स्पार्क डेटाफ्रेम में पांडा डेटाफ्रेम में कनवर्ट करना चाहता था, और फिर कुछ पूछताछ (एसक्यूएल का उपयोग करके), मैं कल्पना करूंगा। के साथ, मैं के चिंगारी पांडा dataframe परिवर्तित करने की कोशिश की शुरू करने के लिए, लेकिन मैं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() 

में विफल रहा है और मैं नीचे त्रुटि

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

किसी ने मुझे यहाँ मदद बाहर कृपया मिल गया? इसके अलावा, अगर मैं कहीं भी गलत हूं तो मुझे सही करें।

उत्तर

5

मैंने अभी आपके कोड को एक नोटबुक में कॉपी और पेस्ट किया है और यह काम करता है।

%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-incubating-बिन-चिंगारी 1.4.0_hadoop-2.3.tgz

0

बैश में 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 
11

टसेपेल्लिन 0.6.0 के साथ मेरे लिए निम्नलिखित काम करता है, 1.6.2 स्पार्क और अजगर 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