index columns pandas apache-spark dataframe apache-zeppelin

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: