到目前为止,我已经能够使用Spark SQL将Mysql JDBC驱动程序注册为spark数据帧,通过Mysql数据库连接并运行查询。
是否可以从Spark SQL连接到TeraData并对其运行查询?
答案 0 :(得分:3)
问题:是否可以从Spark SQL连接到TeraData 对它运行查询?
是的可能。
创建一个类似于下面示例的数据框,并在其上运行spark sql。
以下是spark jdbc
的方法val jdbcDF = sqlContext.load("jdbc", Map(
"url" -> "jdbc:teradata://<server_name>, TMODE=TERA, user=my_user, password=*****",
"dbtable" -> "schema.table_name", // here also can be select query
"driver" -> "com.teradata.jdbc.TeraDriver"))
答案 1 :(得分:1)
是的,这是可能的!
加载特定于teradata的类驱动程序
val sqlcontext=new org.apache.spark.sql.SQLContext(sc)
Df_name=sqlcontext.load("JDBC",Map("url->uri to teradata","dbtable->name"))
将其注册为临时表并通过它进行查询
答案 2 :(得分:1)
val sqlcontext=new org.apache.spark.sql.SQLContext(sc)
val jddf = sqlcontext.load("jdbc",
Map("url" -> "jdbc:teradata://servername/,
TMODE=TERA,
user=####,
password=####,
LOGMECH=LDAP",
"dbtable" -> "(select count(column-name) as cnt from schemaname.table) AS ST", "driver" -> "com.teradata.jdbc.TeraDriver")
)
答案 3 :(得分:0)
确保将jar添加到类路径中,并在运行应用程序时将其包括在内。
sc.addJar("yourDriver.jar")
val jdbcDF = sqlContext.load("jdbc", Map(
"url" -> "jdbc:teradata://<server_name>, TMODE=TERA, user=my_user, password=*****",
"dbtable" -> "schema.table_name",
"driver" -> "com.teradata.jdbc.TeraDriver"))
另请参阅以下链接。