1
こんにちは、ありがとうございました.... 日付文字列(つまりdate_start)は、 2つの印刷関数の出力(以下のコードに従います)が、結果セットがヌルであるため、where句で日付として認識されません(結果セットは、ハードコードされた日付文字列リテラルを使用すると関数外でヌルではありません)。pandas read_gbqを使用して日付文字列を関数に渡すことができません。
。date_start = '2016-10-14 09:00:00'
def get_recs_w_date_range(date_l):
"Iterate through various date ranges to create the a timeframe sample for later aggregation"
global df1
global date_g
date_g = date_l
df1 = pd.read_gbq("select Timestamp, bytes, dst_addr, cast(dst_port as integer) as dst_port, \
cast(duration_ms as integer) as duration_ms, protocol, flow_direction \
FROM ipfix.ipfix \
where Timestamp between timestamp('date_l') and timestamp('2016-10-14 09:00:30') limit 50",
project_id="network-sec-analytics")
print('The value of local var date_l is: {}'.format(date_l))
return
get_recs_w_date_range(date_start)
print('The value of global var date_g is: {}'.format(date_g))
df1
The value of local var date_l is: 2016-10-14 09:00:00
The value of global var date_g is: 2016-10-14 09:00:00
洞察力Kartik ...ありがとうございました。非常に役立ちます。あたかも日付文字列に書式問題があるように見えます。私はこの初期化を追加しました:date_start = '2016-10-14 09:00:00'そしてget_recs_w_date_range(date_start)で関数を呼び出しました。私はこのエラーが発生しています:GenericGBQException:理由:invalidQuery、メッセージ: "" 09:00:00 ""行0、列0に遭遇しました。 期待していました: ")" ... –
EcoWarrior
引用問題のようです。 '{}'を一重引用符で囲み、試してみてください。基本的に: '... BETWEENタイムスタンプ( '{}')AND ...' – Kartik
はい、あなたは正しいです!ご協力ありがとうございますKartikとGo Terps !! – EcoWarrior