是否可以从Spark SQL连接到TeraData并对其运行查询?

时间:2015-05-04 07:33:28

标签: sql apache-spark teradata

到目前为止,我已经能够使用Spark SQL将Mysql JDBC驱动程序注册为spark数据帧,通过Mysql数据库连接并运行查询。

是否可以从Spark SQL连接到TeraData并对其运行查询?

4 个答案:

答案 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"))

另请参阅以下链接。

https://community.hortonworks.com/questions/63826/hi-is-there-any-connector-for-teradata-to-sparkwe.html