/** * Populate entity objects list. * * @param dataFrame * the data frame * @param m * the m * @return the list */ private List<?> populateEntityObjectsList(DataFrame dataFrame, EntityMetadata m) { List results = new ArrayList(); String[] columns = dataFrame.columns(); Map<String, Integer> map = createMapOfColumnIndex(columns); for (Row row : dataFrame.collectAsList()) { Object entity = populateEntityFromDataFrame(m, map, row); results.add(entity); } return results; }
/** * Load data and populate results. * * @param dataFrame * the data frame * @param m * the m * @param kunderaQuery * the kundera query * @return the list */ public List<?> loadDataAndPopulateResults(DataFrame dataFrame, EntityMetadata m, KunderaQuery kunderaQuery) { if (kunderaQuery != null && kunderaQuery.isAggregated()) { return dataFrame.collectAsList(); } // TODO: handle the case of specific field selection else { return populateEntityObjectsList(dataFrame, m); } }
public static void main(String[] args) { //Data source options Map<String, String> options = new HashMap<>(); options.put("driver", MYSQL_DRIVER); options.put("url", MYSQL_CONNECTION_URL); options.put("dbtable", "(select emp_no, concat_ws(' ', first_name, last_name) as full_name from employees) as employees_name"); options.put("partitionColumn", "emp_no"); options.put("lowerBound", "10001"); options.put("upperBound", "499999"); options.put("numPartitions", "10"); //Load MySQL query result as DataFrame DataFrame jdbcDF = sqlContext.load("jdbc", options); List<Row> employeeFullNameRows = jdbcDF.collectAsList(); for (Row employeeFullNameRow : employeeFullNameRows) { LOGGER.info(employeeFullNameRow); } } }