以前の記事の続きで今回はAWS BillingのCUR(Cost and Usage Report)の方で試してみました。
前回と同様
/data フォルダ配下にCSVを配置した状態でZeppelinを立ち上げます。
前回調査不足でちょっと面倒な方法でCSVを読み込んでいたのですが、 Spark2.0からはCSVを読み込む機能が標準で用意されているらしく 以下のようにすることで簡単に読み込むことができるようです。 (loadの引数に読み込みたいCSVファイルを指定します)
%spark
val df = spark.read
.format("com.databricks.spark.csv")
.option("header", "true")
.option("inferSchema", "true")
.load("/data/aws-billing-cur-1.csv")
df.registerTempTable("billing_cur")
SQLを使う際に1点注意なのがCSVのヘッダーが
lineItem/ProductCode のように / を含むのでカラム名を ` で囲ってあげる必要があります。
%sql
select `lineItem/ProductCode`, sum(`lineItem/UnblendedCost`) as cost
from billing_cur
group by `lineItem/ProductCode`
松木佑徒