这个问题的目标是记录:
在PySpark中使用JDBC连接读取和写入数据所需的步骤
JDBC源和已知解决方案可能存在的问题
通过小的更改,这些方法应该与其他支持的语言一起使用,包括Scala和R.
我试图在单个节点(local [*])上以独立模式通过JDBC访问中型Teradata表(约1亿行).
我正在使用Spark 1.4.1.并且设置在一个非常强大的机器上(2个CPU,24个内核,126G RAM).
我已经尝试了几种内存设置和调整选项,以使其更快地工作,但它们都没有产生巨大的影响.
我确信有一些我缺少的东西,下面是我的最后一次尝试,花了大约11分钟来获得这个简单的计数与使用JDBC连接通过R只需要40秒来获得计数.
bin/pyspark --driver-memory 40g --executor-memory 40g
df = sqlContext.read.jdbc("jdbc:teradata://......)
df.count()
Run Code Online (Sandbox Code Playgroud)
当我尝试使用BIG表(5B记录)时,在完成查询后没有返回任何结果.
我知道sparklyr有以下读取文件方法:
spark_read_csvspark_read_parquetspark_read_json那么阅读orc文件怎么样?这个图书馆是否支持它?