фильтрация данных по большому числу в Spark - PullRequest
0 голосов
/ 08 января 2020

У меня есть несколько записей, содержащих время создания в формате json. Прежде чем приступить к реальной работе с данными, я хочу отфильтровать данные, созданные после 31-го числа c 11:59:59 PM (1577836740000). Но запрос фильтра не работает с таким большим числом. Любое предложение, как фильтровать.

Прямо сейчас я делаю это, как показано ниже.

 Dataset<Row> testData = rawDataSet.select(cols)
                .filter(col("name").equalTo("dummy string"))
                ...
                ...//Some filter
                ...
                .filter(col("creationTime").gt((1577836740000l)))

Пустой ввод:

 [
      {
        "name": "a",
        "creationTime": 1577836740000
      },
      {
        "name": "b",
        "creationTime": 1577836720006
      },
      {
        "name": "c",
        "creationTime": 1577836710004
      },
      {
        "name": "d",
        "creationTime": 1577836727006
      },
      {
        "name": "e",
        "creationTime": 1577836740040
      },
      {
        "name": "f",
        "creationTime": 1577836740023
      }
      ...
      ...
      ...
    ]

1 Ответ

0 голосов
/ 08 января 2020

Пожалуйста, используйте следующий код в качестве примера

import spark.implicits.

val inputData = ( """[{ "name":"vaquar khan","RecordNumber": 2, "Zipcode": 704, "ZipCodeType": "STANDARD", "City": "PASEO COSTA DEL SUR", "State": "PR"},{"name":"Zidan khan", "RecordNumber": 10, "Zipcode": 709, "ZipCodeType": "STANDARD", "City": "BDA SAN LUIS", "State": "PR"}] """);

val inputDataDf = spark.read.json(Seq(inputData).toDS)

inputDataDf.show()

scala> inputDataDf.show
+-------------------+------------+-----+-----------+-------+-----------+
|               City|RecordNumber|State|ZipCodeType|Zipcode|       name|
+-------------------+------------+-----+-----------+-------+-----------+
|PASEO COSTA DEL SUR|           2|   PR|   STANDARD|    704|vaquar khan|
|       BDA SAN LUIS|          10|   PR|   STANDARD|    709| Zidan khan|
+-------------------+------------+-----+-----------+-------+-----------+


inputDataDf.filter("Zipcode  not like '704%' ").show

scala>inputDataDf.filter("Zipcode  not like '704%' ").show
+------------+------------+-----+-----------+-------+----------+
|        City|RecordNumber|State|ZipCodeType|Zipcode|      name|
+------------+------------+-----+-----------+-------+----------+
|BDA SAN LUIS|          10|   PR|   STANDARD|    709|Zidan khan|
+------------+------------+-----+-----------+-------+----------+
...