【问题标题】:converting pandas dataframes to spark dataframe in zeppelin在 zeppelin 中将 pandas 数据帧转换为 spark 数据帧
【发布时间】:2016-01-03 03:46:02
【问题描述】:

我是 zeppelin 的新手。我有一个用例,其中我有一个 pandas 数据框。我需要使用 zeppelin 的内置图表来可视化集合我这里没有明确的方法。我的理解是使用 zeppelin,如果它是 RDD 格式,我们可以将数据可视化。所以,我想将 pandas 数据帧转换为 spark 数据帧,然后进行一些查询(使用 sql),我将可视化。 首先,我尝试将 pandas 数据帧转换为 spark's 但我失败了

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

有人可以帮我吗?另外,如果我在任何地方错了,请纠正我。

【问题讨论】:

    标签: pandas apache-spark dataframe apache-zeppelin


    【解决方案1】:

    以下适用于 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))
    

    呈现为:

    【讨论】:

      【解决方案2】:

      我刚刚将您的代码复制并粘贴到笔记本中,它可以工作。

      %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

      【讨论】:

        【解决方案3】:

        尝试在 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
        

        【讨论】:

          猜你喜欢
          • 2017-11-11
          • 2016-09-27
          • 2020-07-24
          • 1970-01-01
          • 2017-09-18
          • 1970-01-01
          • 2015-09-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多