Spark + Java - получить результаты из набора данных - PullRequest
0 голосов
/ 16 апреля 2020

У меня есть небольшой набор данных, который содержит данные о населении по странам в формате HDFS. Я написал код для его анализа и загрузки в Dataset<Row>

    SparkConf conf = new SparkConf().setAppName("JavaWordCount").setMaster("local");
    SparkContext context = new SparkContext(conf);
    SparkSession sparkSession = new SparkSession(context);

    Dataset<Row> df = sparkSession.read().format("com.databricks.spark.csv").option("header", true).option("inferSchema", true).load(args[1]);
    System.out.println("========== Print Schema ============");
    df.printSchema();
    System.out.println("========== Print Data ==============");
    df.show();

Консоль правильно показывает данные -

+-----------------------+-------------------+-------------+---------------+----------+
|countriesAndTerritories|           location|    continent|population_year|population|
+-----------------------+-------------------+-------------+---------------+----------+
|            Afghanistan|        Afghanistan|         Asia|           2020|  38928341|
|                Albania|            Albania|       Europe|           2020|   2877800|
|                Algeria|            Algeria|       Africa|           2020|  43851043|
|                Andorra|            Andorra|       Europe|           2020|     77265|

Однако я хочу получить совокупность United States в переменную int.

Запрос на выбор совокупности:

Dataset<String>xdc = df.select(col("population"))
      .where(col("location").equalTo("United States")).limit(1)

Но как мне получить его содержимое в int переменную?

1 Ответ

0 голосов
/ 17 апреля 2020

Вы можете попробовать это:

int v = Integer.parseInt(
 df.select(col("population"))
 .where(col("location").equalTo("United States"))
 .limit(1)
 .first()
 .get(0)
 .toString()
);
...