如何在 python 中在 spark notebook 上使用 pandas(dashDB 上的数据)

Posted

技术标签:

【中文标题】如何在 python 中在 spark notebook 上使用 pandas(dashDB 上的数据)【英文标题】:How to use pandas on spark notebook (data on dashDB) in python 【发布时间】:2016-06-07 20:44:14 【问题描述】:

您好,我正在使用 IBM Bluemix。 在这里,我使用 Apache Spark 笔记本并从 dashDB 加载数据 我正在尝试提供可视化效果,但它不显示行,只显示列。

def get_file_content(credentials):

from pyspark.sql import SQLContext
sqlContext = SQLContext(sc)


props = 
props['user'] = credentials['username']
props['password'] = credentials['password']

# fill in table name
table = credentials['username'] + "." + "BATTLES"

   data_df=sqlContext.read.jdbc(credentials['jdbcurl'],table,properties=props)
data_df.printSchema()

return StringIO.StringIO(data_df)

当我使用这个命令时:

data_df.take(5)

我得到了前 5 行数据的信息,包括列和行。 但是当我这样做时:

content_string = get_file_content(credentials)
BATTLES_df = pd.read_table(content_string)

我收到此错误:

ValueError: 没有要从文件中解析的列

然后当我尝试查看.head().tail() 时,只显示列名。

有人看到这里可能存在的问题吗?我对python知之甚少。谢谢,麻烦您了。

【问题讨论】:

【参考方案1】:

这是适合我的解决方案。 我换了 BATTLES_df = pd.read_table(content_string)

BATTLES_df=data_df.toPandas()

谢谢

【讨论】:

【参考方案2】:
export PYSPARK_DRIVER_PYTHON=ipython
export PYSPARK_DRIVER_PYTHON_OPTS=notebook

然后转到您的 spark 目录

cd ~/spark-1.6.1-bin-hadoop2.6/

./bin/pyspark --packages com.datastax.spark:spark-cassandra-connector_scalaversion:spark_version-M1

您可以编写以下代码。

import pandas as pd

【讨论】:

以上是关于如何在 python 中在 spark notebook 上使用 pandas(dashDB 上的数据)的主要内容,如果未能解决你的问题,请参考以下文章

Spark 中在处理大批量数据排序问题时,如何避免OOM

如何在 Python 中在终端密码提示中输入密码

如何在 Windows 上的 Python 中在后台播放音乐?

如何在不同文件夹中组织的多个模块的项目中在 python 中进行导入?

python_配置

如何在 Spark 中使用 Python 查找 DataFrame 中的分区数以及如何在 Spark 中使用 Python 在 DataFrame 中创建分区