Examples of CSVParser

There is one exception to the commonly-accepted parsing rules: Embedded line breaks in a quoted field are not parsed but instead interpreted as the premature end of a record. This was a deliberate decision given the scope of this parser and the fact that it parses only a single line of input. @author Johannes Rössel
  • weave.utils.CSVParser
    Parses and generates CSV-encoded tables. Also supports custom delimiters and quotes. @author adufilie

  • Examples of org.apache.commons.csv.CSVParser

            }
        }

        @Test
        public void testCSVUpsertWithBogusColumn() throws Exception {
            CSVParser parser = null;
            PhoenixConnection conn = null;
            try {
                // Create table
                String statements = "CREATE TABLE IF NOT EXISTS " + STOCK_TABLE
                        + "(SYMBOL VARCHAR NOT NULL PRIMARY KEY, COMPANY VARCHAR);";
                conn = DriverManager.getConnection(getUrl())
                        .unwrap(PhoenixConnection.class);
                PhoenixRuntime.executeStatements(conn,
                        new StringReader(statements), null);

                // Upsert CSV file, not strict
                CSVCommonsLoader csvUtil = new CSVCommonsLoader(conn, STOCK_TABLE,
                        Arrays.asList(STOCK_COLUMNS_WITH_BOGUS), false);
                csvUtil.upsert(new StringReader(STOCK_CSV_VALUES));

                // Compare Phoenix ResultSet with CSV file content
                PreparedStatement statement = conn
                        .prepareStatement("SELECT SYMBOL, COMPANY FROM "
                                + STOCK_TABLE);
                ResultSet phoenixResultSet = statement.executeQuery();
                parser = new CSVParser(new StringReader(STOCK_CSV_VALUES),
                        csvUtil.getFormat());
                for (CSVRecord record : parser) {
                    assertTrue(phoenixResultSet.next());
                    assertEquals(record.get(0), phoenixResultSet.getString(1));
                    assertNull(phoenixResultSet.getString(2));
                }

                assertFalse(phoenixResultSet.next());
            } finally {
                if (parser != null)
                    parser.close();
                if (conn != null)
                    conn.close();
            }
        }
    View Full Code Here

    Examples of org.apache.commons.csv.CSVParser

            }
        }

        @Test
        public void testCSVUpsertWithAllColumn() throws Exception {
            CSVParser parser = null;
            PhoenixConnection conn = null;
            try {
                // Create table
                String statements = "CREATE TABLE IF NOT EXISTS " + STOCK_TABLE
                        + "(SYMBOL VARCHAR NOT NULL PRIMARY KEY, COMPANY VARCHAR);";
                conn = DriverManager.getConnection(getUrl())
                        .unwrap(PhoenixConnection.class);
                PhoenixRuntime.executeStatements(conn,
                        new StringReader(statements), null);

                // Upsert CSV file
                CSVCommonsLoader csvUtil = new CSVCommonsLoader(conn, STOCK_TABLE,
                        Arrays.asList("FOO", "BAR"), false);

                try {
                    csvUtil.upsert(new StringReader(STOCK_CSV_VALUES));
                    fail();
                } catch (SQLException e) {
                    assertTrue(
                            e.getMessage(),
                            e.getMessage()
                                    .contains(
                                            "ERROR 504 (42703): Undefined column. columnName=STOCK_SYMBOL.[FOO, BAR]"));
                }
            } finally {
                if (parser != null)
                    parser.close();
                if (conn != null)
                    conn.close();
            }
        }
    View Full Code Here

    Examples of org.apache.commons.csv.CSVParser

            }
        }

        @Test
        public void testCSVUpsertWithBogusColumnStrict() throws Exception {
            CSVParser parser = null;
            PhoenixConnection conn = null;
            try {
                // Create table
                String statements = "CREATE TABLE IF NOT EXISTS " + STOCK_TABLE
                        + "(SYMBOL VARCHAR NOT NULL PRIMARY KEY, COMPANY VARCHAR);";
                conn = DriverManager.getConnection(getUrl())
                        .unwrap(PhoenixConnection.class);
                PhoenixRuntime.executeStatements(conn,
                        new StringReader(statements), null);

                // Upsert CSV file
                CSVCommonsLoader csvUtil = new CSVCommonsLoader(conn, STOCK_TABLE,
                        Arrays.asList(STOCK_COLUMNS_WITH_BOGUS), true);
                try {
                    csvUtil.upsert(new StringReader(STOCK_CSV_VALUES));
                    fail();
                } catch (SQLException e) {
                    assertTrue(
                            e.getMessage(),
                            e.getMessage()
                                    .contains(
                                            "ERROR 504 (42703): Undefined column. columnName=STOCK_SYMBOL.BOGUS"));
                }
            } finally {
                if (parser != null)
                    parser.close();
                if (conn != null)
                    conn.close();
            }
        }
    View Full Code Here

    Examples of org.apache.commons.csv.CSVParser

            }
        }

        @Test
        public void testAllDatatypes() throws Exception {
            CSVParser parser = null;
            PhoenixConnection conn = null;
            try {
                // Create table
                String statements = "CREATE TABLE IF NOT EXISTS "
                        + DATATYPE_TABLE
                        + " (CKEY VARCHAR NOT NULL PRIMARY KEY,"
                        + "  CVARCHAR VARCHAR, CINTEGER INTEGER, CDECIMAL DECIMAL(31,10), CUNSIGNED_INT UNSIGNED_INT, CBOOLEAN BOOLEAN, CBIGINT BIGINT, CUNSIGNED_LONG UNSIGNED_LONG, CTIME TIME, CDATE DATE);";
                conn = DriverManager.getConnection(getUrl())
                        .unwrap(PhoenixConnection.class);
                PhoenixRuntime.executeStatements(conn,
                        new StringReader(statements), null);

                // Upsert CSV file
                CSVCommonsLoader csvUtil = new CSVCommonsLoader(conn,
                        DATATYPE_TABLE, Collections.<String> emptyList(), true);
                csvUtil.upsert(new StringReader(DATATYPES_CSV_VALUES));

                // Compare Phoenix ResultSet with CSV file content
                PreparedStatement statement = conn
                        .prepareStatement("SELECT CKEY, CVARCHAR, CINTEGER, CDECIMAL, CUNSIGNED_INT, CBOOLEAN, CBIGINT, CUNSIGNED_LONG, CTIME, CDATE FROM "
                                + DATATYPE_TABLE);
                ResultSet phoenixResultSet = statement.executeQuery();
                parser = new CSVParser(new StringReader(DATATYPES_CSV_VALUES),
                        csvUtil.getFormat());

                for (CSVRecord record : parser) {
                    assertTrue(phoenixResultSet.next());
                    int i = 0;
                    int size = record.size();
                    for (String value : record) {
                        assertEquals(value, phoenixResultSet.getObject(i + 1)
                                .toString().toUpperCase());
                        if (i < size - 2)
                            break;
                        i++;
                    }
                    // special case for matching date, time values
                    assertEquals(DateUtil.parseTime(record.get(8)),
                            phoenixResultSet.getTime("CTIME"));
                    assertEquals(DateUtil.parseDate(record.get(9)),
                            phoenixResultSet.getDate("CDATE"));
                }

                assertFalse(phoenixResultSet.next());
            } finally {
                if (parser != null)
                    parser.close();
                if (conn != null)
                    conn.close();
            }
        }
    View Full Code Here

    Examples of org.apache.commons.csv.CSVParser

            }
        }

        @Test
        public void testCSVCommonsUpsertEncapsulatedControlChars() throws Exception {
            CSVParser parser = null;
            PhoenixConnection conn = null;
            try {
                // Create table
                String statements = "CREATE TABLE IF NOT EXISTS "
                        + ENCAPSULATED_CHARS_TABLE
                        + "(MYKEY VARCHAR NOT NULL PRIMARY KEY, MYVALUE VARCHAR);";
                conn = DriverManager.getConnection(getUrl())
                        .unwrap(PhoenixConnection.class);
                PhoenixRuntime.executeStatements(conn,
                        new StringReader(statements), null);

                // Upsert CSV file
                CSVCommonsLoader csvUtil = new CSVCommonsLoader(conn,
                        ENCAPSULATED_CHARS_TABLE, Collections.<String> emptyList(),
                        true);
                csvUtil.upsert(new StringReader(
                        CSV_VALUES_ENCAPSULATED_CONTROL_CHARS_WITH_HEADER));

                // Compare Phoenix ResultSet with CSV file content
                PreparedStatement statement = conn
                        .prepareStatement("SELECT MYKEY, MYVALUE FROM "
                                + ENCAPSULATED_CHARS_TABLE);
                ResultSet phoenixResultSet = statement.executeQuery();
                parser = new CSVParser(new StringReader(
                        CSV_VALUES_ENCAPSULATED_CONTROL_CHARS_WITH_HEADER),
                        csvUtil.getFormat());
                for (CSVRecord record : parser) {
                    assertTrue(phoenixResultSet.next());
                    int i = 0;
                    for (String value : record) {
                        assertEquals(value, phoenixResultSet.getString(i + 1));
                        i++;
                    }
                }

                assertFalse(phoenixResultSet.next());
            } finally {
                if (parser != null)
                    parser.close();
                if (conn != null)
                    conn.close();
            }
        }
    View Full Code Here

    Examples of org.apache.commons.csv.CSVParser

          this.strategy = strategy;
          this.base = base;
        }

        void add(SolrInputDocument doc, int line, int column, String val) {
          CSVParser parser = new CSVParser(new StringReader(val), strategy);
          try {
            String[] vals = parser.getLine();
            if (vals!=null) {
              for (String v: vals) base.add(doc,line,column,v);
            } else {
              base.add(doc,line,column,val);
            }
    View Full Code Here

    Examples of org.apache.commons.csv.CSVParser

            for (int i=0; i<skipLines; i++) {
              r.readLine();
            }
          }

          CSVParser parser = new CSVParser(reader, strategy);

          // parse the fieldnames from the header of the file
          if (fieldnames==null) {
            fieldnames = parser.getLine();
            if (fieldnames==null) {
              throw new SolrException( SolrException.ErrorCode.BAD_REQUEST,"Expected fieldnames in CSV input");
            }
            prepareFields();
          }

          // read the rest of the CSV file
          for(;;) {
            int line = parser.getLineNumber()// for error reporting in MT mode
            String[] vals = parser.getLine();
            if (vals==null) break;

            if (vals.length != fields.length) {
              input_err("expected "+fields.length+" values but got "+vals.length, vals, line);
            }
    View Full Code Here

    Examples of org.apache.jena.atlas.csv.CSVParser

        }

      @Override
      public void parse() {
         sink.start() ;
         CSVParser parser = ( input != null ) ? CSVParser.create(input) : CSVParser.create(reader) ;
         List<String> row = null ;
         ArrayList<Node> predicates = new ArrayList<Node>();
         int rowNum = 0;
         while ( (row=parser.parse1())!=null) {
           rowNum++;
           if (rowNum==1){
             for (String column: row){
               Node predicate = this.profile.createURI(filename + "#" + column.trim(), rowNum, 0);
               predicates.add(predicate);
    View Full Code Here

    Examples of org.apache.jena.atlas.csv.CSVParser

    {
        // This code exists to support the SPARQL WG tests.
        private static Logger log = LoggerFactory.getLogger(CSVInput.class) ;
        public static ResultSet fromCSV(InputStream in)
        {
            CSVParser parser = CSVParser.create(in) ;
            final List<Var> vars = vars(parser) ;
            List<String> varNames = Var.varNames(vars) ;
            Transform<List<String>, Binding> transform = new Transform<List<String>, Binding>(){
                private int count = 1 ;
                @Override
    View Full Code Here

    Examples of org.apache.jena.atlas.csv.CSVParser

            return vars ;
        }
       
        public static boolean booleanFromCSV(InputStream in)
        {
            CSVParser parser = CSVParser.create(in) ;
            final List<Var> vars = vars(parser) ;
            if ( vars.size() != 1 ) {
                throw new ARQException("CSV Boolean Results malformed: variables line='"+vars+"'") ;
            }
            if ( ! vars.get(0).getName().equals("_askResult")) {
                FmtLog.warn(log, "Boolean result variable is '%s', not '_askResult'", vars.get(0).getName()) ;
            }
           
           
            List<String> line = parser.parse1() ;
            if ( line.size() != 1 ) {
                throw new ARQException("CSV Boolean Results malformed: data line='"+line+"'") ;
            }
            String str = line.get(0) ;
            boolean b ;
            if ( str.equalsIgnoreCase("true") || str.equalsIgnoreCase("yes") )
                b = true ;
            else if (str.equalsIgnoreCase("false") || str.equalsIgnoreCase("no"))
                b = false;
            else {
                throw new ARQException("CSV Boolean Results malformed, expected one of - true yes false no - but got " + str);
                }
           
            List<String> line2 = parser.parse1() ;
            if ( line2 != null ) {
                FmtLog.warn(log, "Extra rows: first is "+line2) ;
            }
            return b ;
        }
    View Full Code Here
    TOP
    Copyright © 2018 www.massapi.com. All rights reserved.
    All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.