Hi all,

I am trying to execute a hive script to extract data from BAM to MySQL
database. Following is the hive script I am using.


drop table BambooEmmaTable;

drop table SummarizedBambooEmmaTable;

CREATE EXTERNAL TABLE IF NOT EXISTS BambooEmmaTable (key STRING,
payload_reportID STRING ,payload_packageName STRING,
payload_numberOfPackages STRING , payload_numberOfClasses STRING,
payload_numberOfMethods STRING , payload_numberOfBlocks STRING ,
payload_numberOfLines    STRING,
payload_numberOfFiles STRING, payload_allClassCoverage STRING,
payload_allMethodCoverage STRING , payload_allBlockCoverage STRING,
payload_allLineCoverage     STRING,
 payload_classCoverage STRING, payload_methodCoverage STRING,
payload_blockCoverage STRING, payload_lineCoverage STRING) STORED BY
'org.apache.hadoop.hive.cassandra.CassandraStorageHandler' WITH
SERDEPROPERTIES (
"wso2.carbon.datasource.name" = "WSO2BAM_CASSANDRA_DATASOURCE",
"cassandra.cf.name" = "Bamboo_Emma_Stream",
"cassandra.columns.mapping" = ":key,payload_reportID ,
payload_packageName  , payload_numberOfPackages   ,
payload_numberOfClasses  , payload_numberOfMethods   ,
payload_numberOfBlocks   , payload_numberOfLines ,
payload_numberOfFiles  , payload_allClassCoverage  ,
payload_allMethodCoverage   , payload_allBlockCoverage  ,
payload_allLineCoverage       ,
payload_classCoverage  , payload_methodCoverage  , payload_blockCoverage  ,
payload_lineCoverage" );


CREATE EXTERNAL TABLE IF NOT EXISTS

SummarizedBambooEmmaTable( payload_reportID STRING , payload_packageName
STRING, payload_numberOfPackages STRING , payload_numberOfClasses STRING,
payload_numberOfMethods STRING , payload_numberOfBlocks STRING ,
payload_numberOfLines    STRING,
payload_numberOfFiles STRING, payload_allClassCoverage STRING,
payload_allMethodCoverage STRING , payload_allBlockCoverage STRING,
payload_allLineCoverage     STRING,
 payload_classCoverage STRING, payload_methodCoverage STRING,
payload_blockCoverage STRING, payload_lineCoverage STRING )

STORED BY 'org.wso2.carbon.hadoop.hive.jdbc.storage.JDBCStorageHandler'

    TBLPROPERTIES (

                'mapred.jdbc.driver.class' = 'com.mysql.jdbc.Driver',

                'mapred.jdbc.url' = 'jdbc:mysql://localhost/greg',

                'mapred.jdbc.username' = 'root',

                'mapred.jdbc.password' = '123',

                'hive.jdbc.update.on.duplicate'= 'true',

                'hive.jdbc.primary.key.fields'='payload_reportID ,
payload_packageName',

                'hive.jdbc.table.create.query' = 'CREATE TABLE
BambooEmmaSummary ( payload_reportID varchar(50) , payload_packageName
varchar(200)  ,
                 payload_numberOfPackages varchar(50)  ,
payload_numberOfClasses varchar(50) ,
payload_numberOfMethods varchar(50)  , payload_numberOfBlocks varchar(50)
, payload_numberOfLines    varchar(50) ,
payload_numberOfFiles varchar(50) , payload_allClassCoverage varchar(50) ,
payload_allMethodCoverage varchar(50)  , payload_allBlockCoverage
varchar(50) ,
payload_allLineCoverage     varchar(50) ,   payload_classCoverage
varchar(50) , payload_methodCoverage varchar(50) , payload_blockCoverage
varchar(50) ,
payload_lineCoverage varchar(50), PRIMARY KEY(payload_reportID,
payload_packageName ) )');


insert overwrite table SummarizedBambooEmmaTable SELECT payload_reportID
,  payload_packageName , payload_numberOfPackages   ,
payload_numberOfClasses  , payload_numberOfMethods   ,
payload_numberOfBlocks
, payload_numberOfLines , payload_numberOfFiles  ,
payload_allClassCoverage  ,  payload_allMethodCoverage   ,
payload_allBlockCoverage  , payload_allLineCoverage      ,
payload_classCoverage  , payload_methodCoverage  , payload_blockCoverage  ,
payload_lineCoverage  FROM BambooEmmaTable



 How ever I am getting the following exception When I ran the hive script.

[2014-02-11 18:37:33,279] ERROR
{org.wso2.carbon.hadoop.hive.jdbc.storage.db.DBOperation} -  Failed to
write data to database
java.sql.SQLException: No value specified for parameter 2
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1086)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:989)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:975)
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:920)
    at
com.mysql.jdbc.PreparedStatement.checkAllParametersSet(PreparedStatement.java:2594)
    at
com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2569)
    at
com.mysql.jdbc.PreparedStatement.fillSendPacket(PreparedStatement.java:2493)
    at
com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2260)
    at
org.wso2.carbon.hadoop.hive.jdbc.storage.db.DBOperation.isRowExisting(DBOperation.java:149)
    at
org.wso2.carbon.hadoop.hive.jdbc.storage.db.DBOperation.writeToDB(DBOperation.java:59)
    at
org.wso2.carbon.hadoop.hive.jdbc.storage.db.DBRecordWriter.write(DBRecordWriter.java:35)
    at
org.apache.hadoop.hive.ql.exec.FileSinkOperator.processOp(FileSinkOperator.java:589)
    at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
    at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
    at
org.apache.hadoop.hive.ql.exec.SelectOperator.processOp(SelectOperator.java:84)
    at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
    at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
    at
org.apache.hadoop.hive.ql.exec.TableScanOperator.processOp(TableScanOperator.java:83)
    at org.apache.hadoop.hive.ql.exec.Operator.process(Operator.java:471)
    at org.apache.hadoop.hive.ql.exec.Operator.forward(Operator.java:762)
    at
org.apache.hadoop.hive.ql.exec.MapOperator.process(MapOperator.java:531)
    at org.apache.hadoop.hive.ql.exec.ExecMapper.map(ExecMapper.java:143)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:435)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:371)
    at
org.apache.hadoop.mapred.LocalJobRunner$Job.run(LocalJobRunner.java:211)


However, If I change the * 'hive.jdbc.primary.key.fields'='**payload_reportID
, payload_packageName',  *to a single key value, script seems to work fine.

Any ideas what I'm doing wrong here?.. Any help suggestion is highly
appreciated.



Regards,
-- 

*Aruna Sujith Karunarathna* | Software Engineer
WSO2, Inc | lean. enterprise. middleware.
#20, Palm Grove, Colombo 03, Sri Lanka
Mobile: +94 71 9040362 | Work: +94 112145345
Email: [email protected] | Web: www.wso2.com
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to