index - pandas select columns
Conversión de dataframes pandas para destellar dataframe en zeppelin (3)
Acabo de copiar y pegar tu código en una libreta y funciona.
%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|
+---+-+
Estoy usando esta versión: zeppelin-0.5.0-incubating-bin-spark-1.4.0_hadoop-2.3.tgz
Soy nuevo en zepelín. Tengo un caso de uso en el que tengo un marco de datos de pandas. Necesito visualizar las colecciones usando una tabla incorporada de zeppelin. No tengo un enfoque claro aquí. Mi entendimiento es que con zeppelin podemos visualizar los datos si se trata de un formato RDD. Entonces, quería convertir el marco de datos de los pandas en un marco de datos de chispa, y luego hacer algunas consultas (usando sql), lo visualizaré. Para empezar, traté de convertir el marco de datos de pandas en chispas, pero fallé
%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()
Y obtuve el siguiente error
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''>
¿Puede alguien ayudarme aquí? Además, corrígeme si estoy equivocado en cualquier parte.
Intenta configurar las variables SPARK_HOME y PYTHONPATH en bash y luego volver a ejecutarlo
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
Lo siguiente funciona para mí con Zeppelin 0.6.0, Spark 1.6.2 y Python 3.5.2:
%pyspark
import pandas as pd
df = pd.DataFrame([("foo", 1), ("bar", 2)], columns=("k", "v"))
z.show(sqlContext.createDataFrame(df))
que se representa como: