自分がなんとなくBigQueryのクエリを書いていてハマった罠について列挙しておきます。 ドキュメントをちゃんと読めば書いてあったりするのですが、普段はそこまで細かく見てなかったりするんですよね……。 BigQueryのカレンダー | Advent Calendar 2023 - Qii…
こういうツイートを見かけたので元の論文を読んだり実装してみたりしました世界一単純な? ソートアルゴリズム。for i=1..n: for j=1..n: if a[i]
以下のようなツイートを見かけて、AtCoderでSQLが使えることがわかったので試しに AtCoder Beginners Selection の問題を可能な限りSQLを使って解いてみました。できるだけ標準入出力をPython側で行って、その他の計算をSQLite側で行います昨日のD問題でPyth…
2021-07-30 の感染者数が3300人でキリがよかったので、キリがよい数字がどれぐらい出てるか気になった。 とりあえず下一桁の数字がそれぞれどんな回数でてるか見てみた。 あまり内容がある話ではないので先に結果を書いておくと、特に下一桁が0のものが多か…
1月23日頃に出た pip 21.0 でついにPython 2系のサポートが切られてインストールできなくなりました https://pip.pypa.io/en/stable/news/ pip 21.0 Deprecations and Removalsstackoverflow.comhttps://bootstrap.pypa.io/2.7/get-pip.py などに古いバージ…
仕事で使っていたコードのCIのスクリプトがある日突然動かなくなって、調べたらデバッグ出力用にnodenv versionsのコマンドを実行していたのが原因だったのがわかりました 少しの修正で直りそうな問題だったので休日に直してプルリクエストを送りました 英文…
ヌル文字(NUL) の判定 MySQLではnull文字は '\0' や CHAR(0) で表せますなので ヌル文字を含む文字列は 文字列 LIKE '%\0%' のような感じで判定できます(他の文字列系の関数でもよいはず) mysql> SELECT CHAR(0) LIKE '%\0%'; +---------------------+ | CHA…
BigQueryではSTRUCT(構造体)型やARRAY(配列)型が使えます データ型 | BigQuery | Google CloudSTRUCT型のカラムでGROUP BYしようとするとGrouping by expressions of type STRUCT is not allowed atのようなエラーが出てきて実行することができません 同様に…
BigQueryにBigQuery MLという機械学習の機能が追加されました。今はロジスティック回帰による分類と線形回帰による回帰問題について学習ができるようです学習時に変数に対してどのような前処理が行われるのか気になったので調べてみました 誤りなどがあった…
PythonやRubyだと[1, 2] * 3と書くと[1, 2]を3回繰り返した配列[1, 2, 1, 2, 1, 2]が得られます これをPHPで簡単に書く方法がないか考えてみました 二重のforループで配列に足していく方法 最初に自明な方法の二重のforループで足していく方法を書いておきま…
整数(INT64型)や浮動小数点数(FLOAT64型)をBYTES型にしたかったので自前で処理をUDFとして書きました BigQueryのCAST関数でBYTES型にキャストでできるのはBYTES型自身とSTRING型に限られているので、他の型を変換したいときには自分で処理を書く必要がありま…
BigQueryのクエリでテーブル名の末尾に日付などを入れておいて _TABLE_SUFFIX のカラムの条件で利用するテーブルを絞り込みたい時に、_TABLE_SUFFIXの条件をビューやWITH句の外側から書いてみる話です
残念なことにDBにJSONなどではなくPHPでシリアライズされた形式でデータが保存されていることがあります この中身をBigQuery側から参照したかったので調べてみました軽く検索したところJavaScriptでPHPのシリアライズされたデータをもとに戻せるライブラリは…
素数列挙 以前書いた記事では\(10^4\)ぐらいのオーダーまでしか素数を列挙できませんでしたが、クエリを工夫して\(10^7\)ぐらいまでは行けるようになりました sucrose.hatenablog.com 以前のクエリ 上の記事に書いた試し割りによる\(10^4\)個ぐらいまでが限…
GENERATE_ARRAY(start_expression, end_expression[, step_expression])関数を使うと連番の数値(等差数列)を作ることができます リファレンス しかし一度に作る個数が多いとError: GENERATE_ARRAY(1, 10000000, 1) produced too many elementsのようにエラー…
範囲を選択してCtrl + /を押せばよいみたいです(Macの場合は⌘ Cmd + /) BigQueryのキーボードショートカット 以下の範囲選択した状態でCtrl + /を押すと 文字が書かれている部分だけコメントアウトされます 逆にこの形式(先頭に-- )でコメントアウトされてい…
以前BigQueryで配列をzipする記事を書きました 「これを使って配列に添字をくっつけることができる」的なことを書いていたのですが、添字を得るだけならWITH OFFSETと書くだけでよいことに気づいたのでメモしておきます sucrose.hatenablog.com上の記事ではU…
以前JShellでワンライナーのスクリプトっぽく書くのに挑戦しました sucrose.hatenablog.com この記事を書いてからJavaでワンライナーを書いて他の言語よりも嬉しい場合ってあんまりないかもと思い始めてきましたとりあえず思いついた例として、JavaのRobotク…
Java9からJShellというREPL(対話型の実行環境)が使えるようになりました main関数などを書かずともコード片を入力すればその実行結果を試すことができます対話形式以外にもファイルもしくは標準入力でコードを渡すと実行してくれるので、簡単なワンライナー…
最近書いた再帰を使った正規表現を可視化しようと思ってGoogle検索してみたのですが、上位に出てくるサイトでも日本語が使えなかったりサポートしている正規表現にPCREの範囲(というか再帰)が含まれていなかったりいろいろでした いくつか正規表現の可視化サ…
MySQL 5.7からはJSON型のカラムが使えるようになりましたこのJSON型にはMySQLのいわゆるNULL値とは別に値がないことを示すnullという値があって混乱したのでメモしておきます (この記事の内容はたまたま手元にあったMySQL 5.7.20で確かめました)便宜上この記…
PerlやPHPなどの標準の正規表現ライブラリはパターンの再帰をサポートしています(どこまでを正規表現というかはともかくとして)以下の記事のFizzBuzzを解く話で使った3の倍数を表す正規表現が再帰を使えばスッキリ書けそうだったので試してみました正規表現…
FizzBuzzを正規表現で解きたくなったので解いた 知ってる人が多いと思いますが念のため問題の内容を説明しておくと、入力された整数が3の倍数のときはFizz、5の倍数のときはBuzz、15の倍数のときはFizzBuzz、その他のときは数値をそのまま出力します Fizz Bu…
前にAtCoderのレーティングの分布について調べて記事を書きました sucrose.hatenablog.com Twitterで「AtCoderにたくさん参加すればレーティングが上がる」という話を見かけて気になったので、ユーザーの参加回数とレーティングの関係を雑にグラフにしたりレ…
QiitaとAdventarにあるアドベントカレンダーについて、個別の記事とカレンダー全体のはてなブックマーク数のランキングを29日の21時ごろに集計した 個別記事上位100件のURLについては軽く目で見て文字化けを直したり最近の記事ではないURLをフィルタリングし…
GENERATE_ARRAY()関数を使うと等差数列が作れるので後はJOINしてがんばるだけ前に以下の記事でエラトステネスのふるいなどを調べたが、SQLでは試し割りによる方法ぐらいしか書けそうになかった sucrose.hatenablog.com 試し割り ある数をその数よりも小さな1…
BigQueryでクエリを書く時に、クエリの書き方によって実行時間を高速化できたり処理するバイト数を節約したりできます Googleが公式でBigQueryのベストプラクティス集(今はまだ未翻訳)を公開してくれているので、そのうちのクエリを書く時周りのノウハウを簡…
Twitterで見かけた以下の記事で紹介されていた論文がおもしろそうだったので読んだ感想と内容のてきとーな紹介(詳しく知りたい人は元論文を呼んでください)マイクロソフトの研究者による、いわゆる A/B テストにおいてメトリックを解釈するときに陥りがちな…
バグの報告が届いたので2年半ぶりの更新(先週)。全然使ってなかったのでむしろ最近まで動いていたことに驚き たぶん今後も更新頻度は低いと思いますニコニコ静画に投稿されたイラストを、タイトルや作者名入りで保存するための拡張 Seiga Download - Chrome …
今回は機械学習系などでTwitterで見かけたのを入手した 気になった記事だけ触れます SIGNICO 『SIGNICO vol.4』 SIGNICO 冊子版とPDF版があったのでPDF版を手に入れた ミスマッチ判別機を用いたイラストの着色転写手法の提案 線画と色情報を表す参照用の画像…