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
  )

 

 


プログラミング・スクレイピングツール作成の相談を受け付けています!

クラウドワークス・ココナラ・MENTAなどでPython・SQL・GASなどのプログラミングに関する相談やツール作成などを承っております!

過去の案件事例:

  • Twitter・インスタグラムの自動化ツール作成
  • ウェブサイトのスクレイピングサポート
  • ダッシュボード・サイト作成
  • データエンジニア転職相談

これまでの案件例を見る

キャリア相談もお気軽に!文系学部卒からエンジニア・データサイエンティストへの転職経験をもとに、未経験者がどう進むべきかのアドバイスを提供します。


スポンサーリンク
/* プログラミング速報関連記事一覧表示 */
ミナピピンの研究室

コメント

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