示例#1
0
        /// <exception cref="System.IO.IOException"/>
        public virtual void TestSetOutput()
        {
            Job job = Job.GetInstance(new Configuration());

            DBOutputFormat.SetOutput(job, "hadoop_output", fieldNames);
            DBConfiguration dbConf = new DBConfiguration(job.GetConfiguration());
            string          actual = format.ConstructQuery(dbConf.GetOutputTableName(), dbConf.GetOutputFieldNames
                                                               ());

            NUnit.Framework.Assert.AreEqual(expected, actual);
            job    = Job.GetInstance(new Configuration());
            dbConf = new DBConfiguration(job.GetConfiguration());
            DBOutputFormat.SetOutput(job, "hadoop_output", nullFieldNames.Length);
            NUnit.Framework.Assert.IsNull(dbConf.GetOutputFieldNames());
            NUnit.Framework.Assert.AreEqual(nullFieldNames.Length, dbConf.GetOutputFieldCount
                                                ());
            actual = format.ConstructQuery(dbConf.GetOutputTableName(), new string[dbConf.GetOutputFieldCount
                                                                                       ()]);
            NUnit.Framework.Assert.AreEqual(nullExpected, actual);
        }
示例#2
0
        /// <summary>
        /// <inheritDoc/>
        ///
        /// </summary>
        /// <exception cref="System.IO.IOException"/>
        public override RecordWriter <K, V> GetRecordWriter(TaskAttemptContext context)
        {
            DBConfiguration dbConf    = new DBConfiguration(context.GetConfiguration());
            string          tableName = dbConf.GetOutputTableName();

            string[] fieldNames = dbConf.GetOutputFieldNames();
            if (fieldNames == null)
            {
                fieldNames = new string[dbConf.GetOutputFieldCount()];
            }
            try
            {
                Connection        connection = dbConf.GetConnection();
                PreparedStatement statement  = null;
                statement = connection.PrepareStatement(ConstructQuery(tableName, fieldNames));
                return(new DBOutputFormat.DBRecordWriter(this, connection, statement));
            }
            catch (Exception ex)
            {
                throw new IOException(ex.Message);
            }
        }