PyAthenaJDBCライブラリを使用して、Athenaを使用してS3バケットをクエリするPythonスクリプトを作成しようとしています。ライブラリはかなり素晴らしいですが、フォーマットに問題があります。PyAthenaJDBCクエリ文字列書式設定の問題
私は別の関数で文字列としてクエリを構築し、クエリ文字列をcursor.execute(query)
に戻します。
クエリ文字列は、それに引用符を持っており、次のようになります。これは `LIKE「5%」ステートメントでセカンドシングルクォーテーションマークでエラーが発生します
SELECT day, elb_name
,COUNT (*) AS c
,100.0 * (
1.0 - (
SUM (
CASE
WHEN elb_response_code LIKE '5%' THEN 1
ELSE 0
END
)/cast(COUNT (*) as double)
)
) AS success_rate
,100.0 * SUM (
CASE
WHEN backend_processing_time < 0.1 THEN 1
ELSE 0
END
)/cast(COUNT (*) as double) AS t_lt_pt1
,100.0 * SUM (
CASE
WHEN backend_processing_time < 1 THEN 1
ELSE 0
END
)/cast(COUNT (*) as double) AS t_lt_1
,100.0 * SUM (
CASE
WHEN backend_processing_time < 5 THEN 1
ELSE 0
END
)/cast(COUNT (*) as double) AS t_lt_5
,100.0 * SUM (
CASE
WHEN backend_processing_time < 10 THEN 1
ELSE 0
END
)/cast(COUNT (*) as double) AS t_lt_10
FROM elb_logs_raw_native_part
WHERE year = '2017' AND
month = '03' AND
elb_name is not NULL AND
elb_name != ''
GROUP BY day, elb_name
ORDER BY c DESC
。
ValueError: unsupported format character ''' (0x27) at index 186
Iは、エラーを回避し、成功コードのこの時点でreturn (operation).strip()
にreturn (operation % kwargs).strip()
からライブラリにhttps://github.com/laughingman7743/PyAthenaJDBC/blob/master/pyathenajdbc/formatter.py#L115
この行を変更することにより、クエリを実行し、operation == query
(上記貼り付け)とkwargs == {}
私の具体的な質問は、私は間違ってクエリを構成していますか?それとも、空の辞書で置き換えようとすると、元の文字列の書式設定について理解できないものですか?
それでした。私はそれを見たはずです。ありがとう! – manisha