「モネ・ゲーム」を観ました

最近,映画にハマっています.
今回は,モネ・ゲーム.脚本がコーエン兄弟だったので,面白いに違いない.

モネ・ゲーム

モネに詳しい雇われ絵画鑑定士が,屈辱を受けた主人に復讐するためにあれこれ画策するが,
さっぱりうまくいかず.
何とかチャンスを作ったものの,最後はカネを取るかプライドを取るかという状況になり...
という話です.

観終わって

佳作ではないでしょうか.
モネを題材にしているとはいえ,あくまでコメディなので「あー,面白かった」と思えればそれでよし.


特に最後の落としが良かった.
カッコ付けてプズナウスキーを送り出したのに,そのまま「根はいいヤツ」で終わらないのが爽快.
何だか,油断してたら背後から膝カックンされたような感じです.これが無かったら,
予定調和のごく普通の映画だったでしょう.


ここからは細部を.
コリン・ファースアラン・リックマンもキャラ作りはうまかったように思う.
特にコリン・ファースは,生真面目でもっさりした男の雰囲気がにじみ出ていた.
欲を言えば,少佐はもっとキャラを掘り下げてほしかったな.
ストーリーの展開が早くて,ちょっと落ち着きがなかったかもしれない.


あと,日本人が脇役で何度か出てくるんだけど,そうなると彼らは当然日本語で話す.
するとそのシーンだけは字幕が英語になる.これは新鮮だった.
外国映画なのに,字幕なしで観れてしまうとは.
パーティのシーンで「あ〜,ここは無礼講で〜」みたいな台詞が日本語で出てきて笑えた.

「ホーリー・モーターズ」を観ました

レオス・カラックス監督作品をやっていたので,観てきました.
カラックスと言うと,やはりポンヌフの恋人. 懐かしい.
自分の中では90年代に話題になった監督で,随分長く映画やってるんだなー,というイメージです.

ホーリー・モーターズ

自分の人生を生まれ変わってやり直したい男,オスカーの1日をたどる物語.
老婆になったり,殺し屋になったり,またある時は最期を迎える老人になったり,と
めまぐるしく変わる役割をこなすオスカーは何を思うのか,というお話.

観終わって

正直,わけ分からん...
映像的な芸術性は,まだ分かる.
きっと,凡百の監督が撮ったらもっとどうでもいい映像になっていただろうし,
本当につまらんな,という映画になっていたと思う.


ただ,「生まれ変わりたい」のは分かるが,いくら何でも個々のシーンがぶっとびすぎだった.
ストーリーに結末らしきものは無く,カタルシスとか関係なく作ってるのかもしれん.
これはこういうもんだと思って,自分の中から出てくる「??」をひたすら飲み込んで観ないと,もう何だか分からない.


観る人を選ぶという点では,普通の人にはあんまりおすすめできないな.

「愛,アムール」を観ました

普段,映画はあまり見ないのですが,なぜか突然見たくなってしまい有楽町まで行ってきました.
もうロードショーも終わりに近いらしく,上映していたのはミニシアターだけだったのですが,
座席も大きく映画に集中できました.
最近は映画観るならシネコンだろ,みたいな時代になってきていますがこういうところもいいですね.

「愛,アムール」って

穏やかに過ごしていた老夫婦の妻が病で半身マヒになってしまい,それを夫が一人で支えることに.
しかし,妻の病状は悪化する一方.そのうち,互いに限界が...というお話です.
自宅(アパルトマン?)で過ごしているシーンが殆どで,二人の関係が丁寧に描かれます.
どのシーンも日常生活の1コマですが,緊張感があります.

観終わって

感想ですが...言葉でどうこう説明するのが難しいですね.
自分の語彙が足りないところもありますが,感動した,とはちょっと違う気持ちです.


「もし立場が逆だったらどう思う?どうする?」がうまく機能しないとき,どうしたらいいか分からなくて困惑するでしょう.
この映画はその解の1つなのかもしれませんが,こうするしかなかったのか.
こういう結末を迎えるとは思わなかったので,これが一番良い形だったのかも分からずにいます.
もしかしたら,これからも分からないままかもしれません.


それから,個人的には夫が妻をぶってしまうシーンが忘れられません.
息を飲みました.
将来,介護したりされたりするときに,絶対自分にはないか?と問われると否定できないのです.


舞台となる住居は,とても感じのいい家で,程よい調度品や服に囲まれています.
ただ,そこで起こっていることを考えると,そのギャップが余計に辛く感じられるのでした.
ぐだぐだ書いたけど,よい映画です.

ロンドン交響楽団 2013

これまでも何度か聴いたロンドン交響楽団
ハイティンクは初めてだったので,指揮者でどれだけ変わるか興味津々.

ベートーヴェン: ピアノ協奏曲第2番 変ロ長調 Op.19

まず,オーケストラの響きがとてもスタンダード.
決してドイツオケみたいな重厚さはない.また,フランスっぽいエスプリもない.
が,オーケストラの標準的な響きをとことん追求したらこうなるよ,というサウンド
色気を出して必要以上にリズムを揺らしたり,クレッシェンド/デクレッシェンドを大げさにしたりもしない.


ピアノはマリア・ジョアン・ピリスさん.
ピアノの音量がちょっと小さいかなあ...
あんまり自己主張の強い音は出さないのが,逆の意味で個性なのかもしれない.
ベートーヴェン室内楽的な響きは時折出ていたけど,常に,という訳ではなかった.
ちょっと惜しい.
もう少しかろやかにハネる感じで演奏してもよかったんじゃないなあ.
強いインパクトはないけど,楽譜に書いてあることをやり通した印象を受けた.

ブルックナー: 交響曲第9番 ニ短調

一言で言うと,久々にブルックナー感のある演奏に出会えた.
生演奏という点を鑑みれば,かなり良い出来だったんじゃないかな.


ブルックナー特有の低音が静かに鳴り続けるところがきっちり表現できている.
力のないオケだと音楽がブツっと途切れてしまうけど,そんなことはなかった.
流れの転換とか細かい入り方のミスはあったけど,ライブだし仕方ないでしょう.
ブルックナーは運指は大したことないが,ハーモニーを作るのがとても難しい.
普通のオケだとただ鳴ってるだったり,音自体が薄くて何も伝わってこなかったりする.
今日はそんなことはなく,まるで教会で聴いているかのような響きで,オケが一つの楽器になる瞬間が見れた.


オケが退場しても,ハイティンクが2回あいさつするまで観客は帰らず,拍手も止まず.
厳しいことを言えば,木管がちょっと弱かったかな.

TPC-H on ImpalaをGithubに公開しました

前の2エントリで書いたTPC-HをImpalaで動かすためのスクリプトGithubに上げました.
https://github.com/kj-ki/tpc-h-impalaになります.

実行手順

以下の例では,ClouderaのImpala Demo VMが起動していることが前提です.
あとは↓に書いてあるとおりにやれば動くはず.


まず,Gitを入れます.(ここだけはrootで)

yum install git -y

Impala用スクリプトをダウンロード.

git clone https://github.com/kj-ki/tpc-h-impala

TPC-Hデータを生成.

wget http://www.tpc.org/tpch/spec/tpch_2_14_3.zip
mkdir tpch
cd tpch
unzip ../tpch_2_14_3.zip
cd dbgen
cp makefile.suite makefile
vi makefile
## ここから
CC      = gcc
DATABASE = SQLSERVER
MACHINE = LINUX
WORKLOAD = TPCH
CFLAGS  = -O -DDBNAME=\"dss\" -D$(MACHINE) -D$(DATABASE) -D$(WORKLOAD) -D_FILE_OFFSET_BITS=64
## ここまでを編集してください
make
# ここでは1GBデータを生成します
./dbgen -s 1

TPC-HデータをHDFSに格納.

mv *.tbl ~/tpc-h-impala/data/
cd ~/tpc-h-impala/data/
./tpch_prepare_data.sh
rm ~/tpc-h-impala/data/*.tbl

おもむろにImpala起動.

/home/cloudera/impalascripts/start-impalad.sh
/home/cloudera/impalascripts/start-impala-state-store.sh

Go!!

cd ~/tpc-h-impala/data/
./tpch_benchmark.sh

ImpalaでTPC-Hを動かすためのSQL書き換え

TPC-H on HiveをImpalaで動くようになるまでの変更箇所をまとめておきます.
Impalaでは実行できないHiveQLを調べるときの参考になると思います.

DDLは実行できない

ImpalaのLanguage Referenceにも書かれています.
そこでDROPやCREATE文は別ファイルにしておき,Hive上で実行します.
対象クエリ: 全て

ORDER BYにはLIMIT必須

LIMIT付けないとこんなのが出ます.こちらも前述のリファレンスに書かれています.

ERROR: com.cloudera.impala.common.NotImplementedException: ORDER BY without LIMIT currently not supported

じゃあ,付ければいいんだろということで付けました.

-- Q1の変更例
SELECT 
 ...
ORDER BY L_RETURNFLAG, L_LINESTATUS
LIMIT 2147483647;

実は,ImpalaはLIMIT 9223372036854775807(符号付きint64 max)としても動きます.
今回はHiveでも動作するようにしたかったので,int32 maxとしました.
対象クエリ: Q1, Q4, Q5, Q7, Q8, Q9, Q12, Q15, Q16, Q20

GROUP BYには浮動小数点が使えない

doubleとかを指定しようとするとこんなのが出ます.

ERROR: com.cloudera.impala.common.AnalysisException: GROUP BY expression must have a discrete (non-floating point) type: c_acctbal (in insert overwrite table q10_returned_item

仕方ないので一度1000倍してintにし,最終的に1000で割るという無茶をしています.
有効数字?なにそれおいしいの.

-- Q10の変更例
select 
  ...
  cast(c_acctbal*1000 as int)/1000, n_name, c_address, c_phone, c_comment
from
 ...
group by c_custkey, c_name, cast(c_acctbal*1000 as int), c_phone, n_name, c_address, c_comment
...

対象クエリ: Q10, Q18

CROSS JOINができない

こいつが一番やっかいです.JOINするには,必ず結合条件を書かなければいけないようです.

ERROR: com.cloudera.impala.common.NotImplementedException: Join requires at least one equality predicate between the two tables.

Q7の場合はn_regionkeyを使うことで結果的にうまくいったのですが,Q11とQ22では回避できず断念しました.
(Q7は'FRANCE'と'GERMANY'のn_regionkeyがたまたま同じでごまかせただけで,本当は解決していません)

-- Q7の変更例
select 
 ...
from 
  nation n1 join nation n2 
on
-- ここから
  n1.n_regionkey = n2.n_regionkey
  and
-- ここまでを追加
  n1.n_name = 'FRANCE' and n2.n_name = 'GERMANY'
...

対象クエリ: Q7, Q11, Q22

その他

HiveでDDLを実行した場合,impalaではrefreshコマンドによる反映が必要です.
↓のようにするとよいでしょう.

impala-shell --impalad=ip_address:port -q 'refresh'

ImpalaでTPC-Hを動かしてみた

Cloudera Impalaを使って,TPC-Hを動かしてみました.
HIVE-600で既にTPC-H on Hiveが公開されているので,こいつをImpalaで動くようにちょこっと書き換えています.
ついでに,同じクエリをHiveでも流してみました.

結果

- Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10
Impala 6.96 4.14 7.97 12.67 6.12 3.57 14.52 6.86 35.90 5.97
Hive 78.87 147.08 125.23 104.61 191.85 31.33 263.26 217.80 363.12 126.32
- Q12 Q13 Q14 Q15 Q16 Q17 Q18 Q19 Q20 Q21
Impala 4.71 4.86 4.72 5.74 5.92 13.08 22.50 36.35 11.08 42.25
Hive 81.77 105.35 47.37 108.96 121.23 144.42 179.55 96.94 168.62 272.62

※単位は秒です.Query11と22はImpalaでは実行できなくて挫折しました...


実行時間の比を取ると,平均16倍高速に動作しています.

Min.   : 2.667
1st Qu.: 9.721
Median :15.466
Mean   :16.200
3rd Qu.:20.648
Max.   :35.527


同じデータをHiveとImpalaの実行時間をそれぞれ軸にした散布図にするとこうです.
Query19以外は,まあこんなもんか〜という感じですかね.

その他

  • 計測した範囲はselect部分のみになります.(ImpalaはDDLがサポートされていないので)
  • データサイズは1GB.
  • 実行環境はただのPCです.しかも1台...
  • CPU: Phenom II X4 945 (3.0GHz 4core),Mem: 8GB (仮想マシンには6GB割当て)
  • Clouderaが公開しているImpala用仮想マシンイメージをそのまま使わせていただきました.


クエリの具体的な書き換えについては,別エントリで書こうかと思います.