我是 Big Insights 的新手。我正在使用 Cloud 4.1、Ambari 2.2.0 和 Spark 1.6.1 上的 BigInsigths 连接是在 scala 还是 python 中并不重要,但我需要使用 spark 进行数据处理,然后将其持久保存在 BigSql 中。这可能吗?提前致谢。
2 回答
检查 syshadoop.execspark 以了解如何执行 Spark Jobs 并以表格式返回输出,之后您可以插入表或与其他表连接。
SELECT *
FROM TABLE(SYSHADOOP.EXECSPARK(
class => 'DataSource',
format => 'json',
uriload => 'hdfs://host.port.com:8020/user/bigsql/demo.json'
)
) AS doc
WHERE doc.country IS NOT NULL
LIMIT 5
以下是在 BigInsights 中使用 jdbc 通过 PySpark 连接 BigSQL 的步骤——
1.将db2jcc4.jar(IBM驱动连接BigSQL,可以从http://www-01.ibm.com/support/docview.wss?uid=swg21363866下载)放到python库中。
2.在spark-defaults.conf文件(位于你的spark安装的conf文件夹)中添加jar文件路径 spark.driver.extraClassPath /usr/lib/spark/python/lib/db2jcc4.jar spark.executor.extraClassPath /usr/lib/spark/python/lib/db2jcc4.jar
或者
使用 jar 路径启动 Spark Shell -- pyspark --jars /usr/lib/spark/python/lib/db2jcc4.jar
3.使用sqlContext.read.format指定JDBC URL等驱动信息--
从 pyspark.sql 导入 SQLContext
sqlContext=SQLContext(sc)
df = sqlContext.read.format("jdbc").option(url="jdbc:db2://hostname:port/bigsql",driver="com.ibm.db2.jcc.DB2Driver",dbtable="tablename" ,用户=“用户名”,密码=“密码”).load()
df.show()