SQL

DatabricksでSUBSTRINGとCONCATで文字列データを操作する

この記事は約2分で読めます。

 

Databricksのspark.sqlで20220801みたいな年月日がそのままくっついている日付の文字型データを2022-08-01のように変換して新しい列にする方法について紹介したいと思います。

 

文字列の抽出はSUBSTRING()

 

Databricks では一般的なSQLと同じようにSUBSTRING句で文字列の抽出ができます

書き方は他のSQLと同じような感じでOKです。

 

<構文イメージ>

SUBSTRING(文字列, 開始位置, 抽出数)

 

文字の結合はCONCAT()

 

Databricksでは文字の結合はCONCAT句で行うことができます。

こちらも一般的なSQLと同じ書き方でOKです。

 

<構文イメージ>

CONCAT(文字列①, 文字列②)

 

SQLで数字状の日付を年/月/日に分解する

 

SUBSTRING句とCONCAT句を用いて「20220101」→「2022-01-01」という風に変換する場合は以下のように記述します。

 

列名 _dateの中身

20220101,

20220102,

20220103,

・・・

 

<クエリサンプル>

 

SELECT
  CONCAT(year,'-', month,'-', day) AS date_date
FROM
  (
    SELECT
      SUBSTRING(_date, 1, 4) AS purchase_year
      ,SUBSTRING(_date, 5, 2) AS purchase_month
      ,SUBSTRING(_date, 7, 2) AS purchase_day
    FROM
      table
  )

 

 

コメント

タイトルとURLをコピーしました