山pの楽しいお勉強生活

勉強の成果を垂れ流していきます

2019-01-01から1年間の記事一覧

エンジニアとして一番大事だと思う事

ドアカン Advent Calendar 2019の24日目の記事になります。 昨日はYoshihiko Morikawaさんのフィルムカメラの話です。熱いですね。*1 はじめに いつの間にかITエンジニアとして若手からシニアと言う立場になってきた今日この頃です。(IT業界歴10年ちょっと…

GitHub ActionsでGitHub Package RegistryにDocker Imageをpushする

前の記事では手動でGithub Package RegistryにDocker Imageをpushしましたが、実際にはそんなの手でやってられません。こういう事はCIにやらせましょう。 GitHub Actions及びGitHub Package Registryは正式公開されたばかりだからか、情報が少なかったのでメ…

GitHub Package RegistryにDocker imageを格納する

公式のドキュメントでうまくいかなかったものの、検索しても記事がみつからなかったのでメモ。 (GitHub Actionsでのサンプルはいくつもあったが、手動でのサンプルがみつからなかった。) ※わかってる人なら特に記事にする事でもないので、サンプルがなかっ…

Windowsで今まで動いていたdocker runが失敗する

あまりわかってないけど、解決した & 日本語の情報がみつからなかったのでメモ エラーメッセージ SECURITY WARNING: You are building a Docker image from Windows against a non-Windows Docker host. All files and directories added to build context w…

GitHubのマージ済のブランチをGitHub Actionsで定期的に削除する

追記(2019/10/28) GitHubのリポジトリ設定にマージ完了後にブランチを削除する設定がありました。(2019/07/31に追加されたらしいです。)よって、GitHub Actionsなんて使用せずにリポジトリの設定を変更しましょう! help.github.com はじめに プルリク後…

setuptoolsがsetup.cfgを読んでくれない

現象 Pythonでsetuptoolsを使用してwheelファイルを作成しようとしたが、自動的に読んでくれるはずの「setup.cfg」を読んでくれない。 ※setup.pyで「setup(name='hoge')」などと指定すると正しく動作する ※正確には、license_fileなどで存在しないファイルを…

Windowsでpyenv(pyenv-win)

pyenvを使おうと思って公式見たらpyenv-win使えと書いてあった。 If you're on Windows, consider using @kirankotari's pyenv-win fork. (pyenv does not work on windows outside the Windows Subsystem for Linux) 使い方も含めてメモ pyenvとは Pythonの…

JDK 1.8.0_221を管理者権限がないWindowsにインストールする

今時Java8?管理者権限がないとかどういうこと?とか色々言いたい事はありますが、やらなきゃいけない事もあるのです。 同内容の記事がWeb上で見受けられますが、落とし穴いっぱいなので改めて記事にしています。 手順 jdkを取得 https://www.oracle.com/tec…

databricksでcreate tableを行った際にParquet does not support timestamp. See HIVE-6384が発生する

エラー詳細 stacktraceは長いので割愛 com.databricks.backend.common.rpc.DatabricksExceptions$SQLExecutionException: org.apache.spark.sql.AnalysisException: org.apache.hadoop.hive.ql.metadata.HiveException: java.lang.UnsupportedOperationExcep…

PySparkで日付毎にデータを蓄積する際のdf.write.modeについて

概要 PySparkでpartitionByで日付毎に分けてデータを保存している場合、どのように追記していけば良いのか。 先にまとめ appendの方がメリットは多いが、チェック忘れると重複登録されるデメリットが怖い。 とはいえ、overwriteも他のデータ消えるデメリット…

PySparkで特定のカラムが全体の最大値であるレコードを取得する

概要 実現はできてはいたものの、もっと良いやり方ないかな?と聞いたら教えてもらったのでメモ。 うまく説明できないのでデータを記載します。 処理前 +----+------+ |name| date| +----+------+ | a|201906| | a|201907| | b|201906| | b|201907| | c|2019…

Databricksでは日本語は使用しない方が良い

概要 Databricksでファイル名、フォルダ名、引数では日本語を使用できない場合があるので、使用しない方が良い。 詳細 今時当たり前だが、Databricksでは普通に日本語を使用可能。 ファイル名やフォルダ名でもnotebbook単体で普通に使う分には問題ない。 だ…

PySparkでjsonカラムを縦持ちに変換する

正確には文字列でjsonが入っている時にパースして縦持ちにする方法。 また使いそうだが、すぐ忘れそうなのでメモ データ 元データ +---+--------------------------------------------------------------+ |id |json | +---+-------------------------------…

PySparkでread時に型が変わる

概要 PySparkで保存前はstringで、読み込むとintegerにカラムの型が変わっている現象に遭遇した。 原因としてはpartitionByで指定したカラムの型は自動的に推測されるため。 パーティションのカラムのデータタイプは自動的に推測されることに注意してくださ…

GreasemonkeyやTampermonkeyで外部CSSを読み込む

表題のまま。 久しぶりにuser script書いたら外部のCSSの読み込み方法がわからなかったのでメモ。 (昔、user scriptをよく書いてた時も外部のCSS読み込んでいたと思うんだけど、こんな方法使ってた記憶がない。。。どうやってたんだろう?) まとめ ヘッダ…

Pythonでjsonを読み込み、出力する際にdateやdatetime型を使用する

出力の時の話はよく記載がありましたが、読み込みの際に変換する方法はあまりなかったのでメモ。 概要 jsonでは日付型というのは定義されていません。(そもそもどう表現する?) そのため、pythonでjsonを読み込みの際に日付が含まれていても文字列になりま…

S3cmdのProxy設定について

s3cmdを使用して動いていたバッチ処理で、proxy設定を追加しようとしたら色々大変だったお話。 S3cmdとは S3cmd : Command Line S3 Client and Backup for Linux and Mac 公式ページより。 Windows用にはS3Expressというのがあるらしい。 S3Express : Comman…

Pythonからs3fsを使用してS3を操作した際にハマった件について

はじめに PythonsからS3をいじる際に、これまではaws cliを直接叩いていたのですが、s3fsを使用するとexistsやlsみたいなわかりやすい名称で使えるというのをどこかで知ったので使ってみた。 同名でS3をマウントするもの( https://github.com/s3fs-fuse/s3f…