Sparkのデータフレームを使用して日付フィールドに値を追加する方法

BigD

データフレームに日付値(yyyy / mm / dd)があります。次の7日間のデータを見つける必要があります。Sparkでデータフレームを使用してそれを行うにはどうすればよいですか?

例:以下のようなデータがあります

   23/01/2018 , 23
   24/01/2018 , 21
   25/01/2018, 44
   .
   .
   .
   .
   .
   29/01/2018,17

今日を含む次の7日間のデータを取得する必要があります(データの最小日付から開始)。したがって、私の例では、2018/01/23プラス7日前の日付を取得する必要があります。同じことを達成する方法はありますか?

注:データから最小日付を見つける必要があり、その最小日付+ 7日間のデータをフィルタリングする必要があります

         scala> df.show
          +----------+---+-------+
          | data_date|vol|channel|
          +----------+---+-------+
          |05/01/2019| 10|    ABC|
          |05/01/2019| 20|    CNN|
          |06/01/2019| 10|    BBC|
          |07/01/2019| 10|    ABC|
          |02/01/2019| 20|    CNN|
          |17/01/2019| 10|    BBC|
          +----------+---+-------+




         scala>  val df2 = df.select("*").filter( to_date(replaceUDF('data_date)) > date_add(to_date(replaceUDF(lit(minDate))),7))
         df2: org.apache.spark.sql.Dataset[org.apache.spark.sql.Row] = [data_date: string, vol: int ... 1 more field]

         scala> df2.show
         +---------+---+-------+
         |data_date|vol|channel|
         +---------+---+-------+
         +---------+---+-------+

以下のデータが必要です。最小日付は2018年2月2日aなので、最小日付+7は2018年7月2日です。2018年2月1日から2018年7月2日までのデータが必要です

          +----------+---+-------+
          | data_date|vol|channel|
          +----------+---+-------+
          |05/01/2019| 10|    ABC|
          |05/01/2019| 20|    CNN|
          |06/01/2019| 10|    BBC|
          |07/01/2019| 10|    ABC|
          |02/01/2019| 20|    CNN|

          +----------+---+-------+

私は火花の初心者なので誰かが助けることができます

クマール

以下のステートメントをインポート

import org.apache.spark.sql.functions._

コードスニペット

    val minDate = df.agg(min($"date1")).collect()(0).get(0)
    val df2 = df.select("*").filter( to_date(regexp_replace('date1,"/","-")) > date_add(to_date(regexp_replace(lit(minDate)),"/","-"),7))
    df2.show()

データの場合

val data = Seq(("2018/01/23",23),("2018/01/24",24),("2018/02/20",25))

出力は次のようになります

+----------+---+
|     date1|day|
+----------+---+
|2018/02/20| 25|
+----------+---+

別の出力を探している場合は、期待される結果で質問を更新してください。

以下はあなたの参照のための完全なプログラムです

package com.nelamalli.spark.dataframe

import org.apache.spark.sql.SparkSession
import org.apache.spark.sql.functions._
object DataFrameUDF {
  def main(args:Array[String]): Unit = {

    val spark:SparkSession = SparkSession.builder()
      .master("local[3]")
      .appName("SparkByExample")
      .getOrCreate()

    val data = Seq(("2018/01/23",23),("2018/01/24",24),("2018/02/20",25))

    import spark.sqlContext.implicits._
    val df = data.toDF("date1","day")

    val minDate = df.agg(min($"date1")).collect()(0).get(0)
    val df2 = df.select("*").filter( to_date(regexp_replace('date1,"/","-")) > date_add(to_date(regexp_replace(lit(minDate)),"/","-"),7))

    df2.show()
  }


}

ありがとう

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

n組の日付(キー)/値列を使用してデータフレームを自動的に整理する方法

分類Dev

別のデータフレームの日付に基づいてデータフレームの値をフィルタリングする

分類Dev

djangoRESTフレームワークを使用してメタデータにフィールドを追加する

分類Dev

データフレームに日付列を追加する方法

分類Dev

入力ファイル名を分割し、sparkデータフレーム列に特定の値を追加する方法

分類Dev

単一のデータフィールドの言語検出を使用してjsonにデータフィールド(キー値)を追加する方法

分類Dev

forループを使用してデータフレームに値を追加する

分類Dev

さまざまなフィールドに日時を使用してデータフレームを作成する

分類Dev

データフレームオブジェクトフィールドから日付値を抽出する方法

分類Dev

不足している日付のみをデータフレームに追加する方法

分類Dev

javascriptを使用してhtmlの他のフィールドの値に基づいてフォームフィールドにデータを入力する方法

分類Dev

別の日付列を参照してデータフレームに日付列を追加する

分類Dev

Oracleの日付に基づいてデータベースフィールド値を合計する方法

分類Dev

Sparkデータフレームの日付列に月を追加

分類Dev

データフレーム内の他の複数の列の値を使用して、データフレームに新しい列を追加する-spark / scala

分類Dev

rails_adminを使用して日付フィールドのデフォルト値を追加します

分類Dev

欠落している日付のフォワードフィルを使用して、すべてのIDの日次データを追加します

分類Dev

日付フィールドと別のフィールドに基づいて、Rデータフレームの重複行を削除します

分類Dev

「日付」フィールドごとにデータフレームを配置(dplyr)する方法は?

分類Dev

データベースの日付(時刻を含む)をphpテーブルの非表示フィールドの値として使用する方法

分類Dev

Pythonで日付を使用してデータフレーム列を複数の列に分割する方法

分類Dev

Pythonを使用して時系列またはデータフレームの日付範囲をフィルタリングする方法

分類Dev

Sparkデータフレームを使用してグループ化するときに条件付きの列の最初の値を取得します

分類Dev

データフレームの新しい列として追加する範囲内にある場合に値をフィルタリングする方法

分類Dev

pandasデータフレームを使用して、データフレーム値の各列を1つずつ新しいシートに追加する方法

分類Dev

2つの日付の間でフィルタリングされた時間に基づいて新しいデータフレームを作成する方法

分類Dev

mongodbとnodejsのフィールドとしてタイムスタンプを使用してレコードを日ごとにグループ化する方法

分類Dev

Scalaを使用してデータフレーム内のフィールドの内容を逆にする

分類Dev

完全に一致する日付値に基づいてパンダデータフレームをフィルタリングする方法

Related 関連記事

  1. 1

    n組の日付(キー)/値列を使用してデータフレームを自動的に整理する方法

  2. 2

    別のデータフレームの日付に基づいてデータフレームの値をフィルタリングする

  3. 3

    djangoRESTフレームワークを使用してメタデータにフィールドを追加する

  4. 4

    データフレームに日付列を追加する方法

  5. 5

    入力ファイル名を分割し、sparkデータフレーム列に特定の値を追加する方法

  6. 6

    単一のデータフィールドの言語検出を使用してjsonにデータフィールド(キー値)を追加する方法

  7. 7

    forループを使用してデータフレームに値を追加する

  8. 8

    さまざまなフィールドに日時を使用してデータフレームを作成する

  9. 9

    データフレームオブジェクトフィールドから日付値を抽出する方法

  10. 10

    不足している日付のみをデータフレームに追加する方法

  11. 11

    javascriptを使用してhtmlの他のフィールドの値に基づいてフォームフィールドにデータを入力する方法

  12. 12

    別の日付列を参照してデータフレームに日付列を追加する

  13. 13

    Oracleの日付に基づいてデータベースフィールド値を合計する方法

  14. 14

    Sparkデータフレームの日付列に月を追加

  15. 15

    データフレーム内の他の複数の列の値を使用して、データフレームに新しい列を追加する-spark / scala

  16. 16

    rails_adminを使用して日付フィールドのデフォルト値を追加します

  17. 17

    欠落している日付のフォワードフィルを使用して、すべてのIDの日次データを追加します

  18. 18

    日付フィールドと別のフィールドに基づいて、Rデータフレームの重複行を削除します

  19. 19

    「日付」フィールドごとにデータフレームを配置(dplyr)する方法は?

  20. 20

    データベースの日付(時刻を含む)をphpテーブルの非表示フィールドの値として使用する方法

  21. 21

    Pythonで日付を使用してデータフレーム列を複数の列に分割する方法

  22. 22

    Pythonを使用して時系列またはデータフレームの日付範囲をフィルタリングする方法

  23. 23

    Sparkデータフレームを使用してグループ化するときに条件付きの列の最初の値を取得します

  24. 24

    データフレームの新しい列として追加する範囲内にある場合に値をフィルタリングする方法

  25. 25

    pandasデータフレームを使用して、データフレーム値の各列を1つずつ新しいシートに追加する方法

  26. 26

    2つの日付の間でフィルタリングされた時間に基づいて新しいデータフレームを作成する方法

  27. 27

    mongodbとnodejsのフィールドとしてタイムスタンプを使用してレコードを日ごとにグループ化する方法

  28. 28

    Scalaを使用してデータフレーム内のフィールドの内容を逆にする

  29. 29

    完全に一致する日付値に基づいてパンダデータフレームをフィルタリングする方法

ホットタグ

アーカイブ