山pの楽しいお勉強生活

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

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…

PowerShellでJava実行する際にシステムプロパティを設定する際の注意点

概要 PowerShellで java -Dsystem.language=ja Sample みたいな形でシステムプロパティを指定して実行すると正しく実行されない。 コマンドプロンプトなら勿論実行可能。 正しく実行する際には java "-Dsystem.language=ja" Sample のようにダブルクォーテー…

S3で静的ファイルのホスティングしてIP制御

経緯 静的なHTMLをお客さんに見せる事になり、ローカルPCで見せてもいいけど、どうせならどこかにホスティングして置いといた方がいいよね。って事でS3に置いたらIP制御でハマったのでメモ。 ※ハマったというか、エンドポイントではなくて直接ファイルにアク…

VSCodeで静的コード解析ツールPylintを使用する

はじめに PythonではPEP8というコード規約が一般的に使用されているようです。(PEP 8 -- Style Guide for Python Code) この規約に準拠したツールがいくつかあり、これ!っというものは特にないという印象です。 で、代表的なものとして、同名のpep8がある…

オブジェクトの配列をPandasのDataFrameに変換する

背景とか オブジェクト(エンティティとか、JavaBeansとか、DTOとか呼ばれる属性(フィールド)しか持たない奴)の配列をPandasのDataFrameに変更したメモです。 簡単にできそうだったけどできなかったので結局dictionaryに変換して突っ込みました。 Python…

SQLAlchemyでAUTO_INCREMENTされた値を取得したい

結論 addした後にflushすると、addしたオブジェクトに設定されている。 【未確認】exuecuteで実行する場合には返り値から取得できる?(参考) 環境 MySQL 5.7(Cloud SQL) Python 3.6.6 PyMySQL 0.8.1 SQLAlchemy 1.2.0 コード from sqlalchemy import Col…

SQLAlchemyでAttributeError

経緯とか 調査依頼を受けて調べてみた結果を記載。 どこかの誰かは助かるかも的な奴。 調査依頼の内容 SQLAlchemyでselectしようとしたら変な例外で落ちた。 SQLを実行する前に落ちている。 よくわからないオブジェクトでよくわからない例外が発生している。…

WSLでgoogle-images-downloadを使用する

概要 WindowsのWSL上でgoogle-images-downloadを使用して、画像を集める 用語 WSL Windows Subsystem for Linux Windows上でLinux動かすやつ google-images-download Google画像検索を使用して画像を取得してくれる。 Seleniumを使用してスクレイピングで取…

Atomのmarkdown-tocでタイトルが日本語の場合に動かない場合の対処

はじめに Markdown書いていると見出し(toc)が欲しくなる ↓ Atomのプラグイン探す ↓ あった ↓ 日本語で正しく動かない っといった感じでAtomのプラグイン「markdown-toc」を使ってみたものの、日本語で書いた際に動かなくて困る人がまあまあいるらしい。 の…

Python3とAWS LambdaでTwitterの名前に天気を表示する

はじめに 数日前に話題になっていた「Twitterの名前を5分毎に東京の天気☼☂☃と連動させるサーバレスプログラムを書いたら色々知らないことが出てきた話」を読んで、Pythonのいい練習になりそう!って事で自分でやってみた話です。 数日経って元記事見てみたら…

Python3でZipの圧縮解凍操作

前記事のPython3でファイル操作に続いて、ZIPの圧縮解凍。 自分が業務内でどうでもいいスクリプト作る際に見るためのメモです。 Python勉強中なので間違っていたり、もっとPythonらしく書ける部分があればコメント欄やTwitterでツッコミお願いします。 コー…

Python3でファイル操作

何番煎じだ的な感じですが、自分が業務内でどうでもいいスクリプト作る際に見るためのメモです。 Python勉強中なので間違っていたり、もっとPythonらしく書ける部分があればコメント欄やTwitterでツッコミお願いします。 コード Githubにもあげてます。(使…

2017年の反省と2018年の目標

はじめに 2018年も既に2月となっておりますが、2017年の反省と2018年の目標を書きます。 2017年 転職の1年でした。活動自体は1月から7月の入社まで。(退職は3月末)入社後も色々な意味で慣れない仕事に追われていた1年でした。 転職活動では、皆様にご迷惑…

Windowsから定期的にSlackに投稿する

はじめに WindowsからSlackにメッセージを投げたい事があって、面倒だろうなと思って調べてみたらあまりにも簡単だったのでメモ。 自分通知用にSlackメッセージ投げたい事あるよね?ない?? 一言で言うと「Windowsのタスクスケジューラでbash上でシェルを動…

lsとpwdをコマンドプロンプトで使う

c:\work\20170929>ls 'ls' は、内部コマンドまたは外部コマンド、 操作可能なプログラムまたはバッチ ファイルとして認識されていません。 はじめに コマンドプロンプトで「ls」や「pwd」と打って怒られたので、カッとなってやりました。 真面目に使いたいな…

MarkdownでSlide作成して自分のGitHub Pagesで公開する

MarkdownでSlide作成して自分のGitHub Pagesで公開する奴を作りました。 資料がアチラコチラに散らばることがなく、テキストでGitなので差分が見れたりと結構便利です。 動きがあるスライドなどは辛いですが、さくっと作る時には良いかと思いますので良かっ…

We Are JavaScripters! @10thに参加してきた #WeJS #yahoolodge

資料など、随時更新します。 はじめに 8月25日(金)に「We Are JavaScripters! @10th」という勉強会に参加してきた時のメモです。 全てLT、酒飲みながらのメモなので*1、興味のある発表については資料見たほうが早いかと思います。 資料については公開され…

JJUG ナイトセミナー 「Java O/Rマッパー特集」に参加してきました #jjug

久しぶりに?JJUGナイトセミナーに参加してきましたその際のメモになります。 あくまでもメモなので、抜けている箇所や誤っている箇所がある可能性があります。セッションの資料はかなりわかりやすかったので、是非各スライドをご参照ください togetter 概要…

We Are JavaScripters! @9thに参加してきた #WeJS #21cafe

はじめに 7月20日(木)に「We Are JavaScripters! @9th」という勉強会に参加してきた時のメモです。 全てLT、酒飲みながらのメモなので*1、興味のある発表については資料見たほうが早いかと思います。 資料については、2017/07/21 9:00現在公開されていない…

Redshiftの文字列はバイト数換算

Amazon RedshiftはPostgreSQL互換ですが、多くの違いがあります。異なる点については公式を始めとして各所にまとまっていますが、タイトルの件についてはあまり記載を見なかったのでメモしときます。 PostgreSQLは文字数 公式から引用 SQLは2つの主要な文字…