You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@spark.apache.org by Alchemist <al...@gmail.com> on 2018/05/09 12:38:52 UTC

Malformed URL Exception when connecting to Phoenix to Spark

CodeJavaSparkContext sc = new JavaSparkContext(sparkConf);  SQLContext sqlContext = new org.apache.spark.sql.SQLContext(sc);  
   Map<String, String> map = new HashMap<String, String>();   map.put("zkUrl", args[2]);   map.put("table", args[1]);   map.put("driver", "org.apache.phoenix.jdbc.PhoenixDriver");  // long cnt = sqlContext.read().format("org.apache.phoenix.spark").options(map).load().count()   DataFrameReader reader = sqlContext.read();   DataFrameReader readerM = reader.format("org.apache.phoenix.spark");   DataFrameReader readerM2 = readerM.options(map);   Dataset<Row> ds = readerM2.load();   ds.logicalPlan();   long cnt = ds.count();  // format("org.apache.phoenix.spark").options(map).load().count();     System.out.println("************ cnt " + cnt);  Exception18/05/09 12:31:23 INFO RecoverableZooKeeper: Process identifier=hconnection-0x5ebbde60 connecting to ZooKeeper ensemble=10.16.129.152:2181Exception in thread "main" java.sql.SQLNonTransientConnectionException: Cannot load connection class because of underlying exception: com.mysql.cj.core.exceptions.WrongArgumentException: Malformed database URL, failed to parse the main URL sections. at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:526) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:513) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:505) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:479) at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:489) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:72) at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:124) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:224) at java.sql.DriverManager.getConnection(DriverManager.java:664) at java.sql.DriverManager.getConnection(DriverManager.java:208) at org.apache.phoenix.mapreduce.util.ConnectionUtil.getConnection(ConnectionUtil.java:98) at org.apache.phoenix.mapreduce.util.ConnectionUtil.getInputConnection(ConnectionUtil.java:57) at org.apache.phoenix.mapreduce.util.ConnectionUtil.getInputConnection(ConnectionUtil.java:45) at org.apache.phoenix.mapreduce.util.PhoenixConfigurationUtil.getSelectColumnMetadataList(PhoenixConfigurationUtil.java:338) at org.apache.phoenix.spark.PhoenixRDD.toDataFrame(PhoenixRDD.scala:118) at org.apache.phoenix.spark.PhoenixRelation.schema(PhoenixRelation.scala:60) at org.apache.spark.sql.execution.datasources.LogicalRelation$.apply(LogicalRelation.scala:77) at org.apache.spark.sql.SparkSession.baseRelationToDataFrame(SparkSession.scala:429) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:172) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:146) at PhoenixToDataFrame.main(PhoenixToDataFrame.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.spark.deploy.SparkSubmit$.org$apache$spark$deploy$SparkSubmit$$runMain(SparkSubmit.scala:775) at org.apache.spark.deploy.SparkSubmit$.doRunMain$1(SparkSubmit.scala:180) at org.apache.spark.deploy.SparkSubmit$.submit(SparkSubmit.scala:205) at org.apache.spark.deploy.SparkSubmit$.main(SparkSubmit.scala:119) at org.apache.spark.deploy.SparkSubmit.main(SparkSubmit.scala)Caused by: com.mysql.cj.core.exceptions.UnableToConnectException: Cannot load connection class because of underlying exception: com.mysql.cj.core.exceptions.WrongArgumentException: Malformed database URL, failed to parse the main URL sections. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54) at com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:93) ... 23 moreCaused by: com.mysql.cj.core.exceptions.WrongArgumentException: Malformed database URL, failed to parse the main URL sections. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at com.mysql.cj.core.exceptions.ExceptionFactory.createException(ExceptionFactory.java:54) at com.mysql.cj.core.conf.url.ConnectionUrlParser.parseConnectionString(ConnectionUrlParser.java:134) at com.mysql.cj.core.conf.url.ConnectionUrlParser.<init>(ConnectionUrlParser.java:124) at com.mysql.cj.core.conf.url.ConnectionUrlParser.parseConnectionString(ConnectionUrlParser.java:113) at com.mysql.cj.core.conf.url.ConnectionUrl.getConnectionUrlInstance(ConnectionUrl.java:192) at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:194) ... 22 more