Необходимость перенести некоторый код Python, который считывает два представления дампа GA за заданный период времени, а затем объединяет их.Работает отлично.Обнаружение того, что мой C # висит на Join
Python
private_key_loc = <<key>>
sql = <<bigquery>>
impressions_all = pd.read_gbq(<<bigquery>>,private_key = private_key_loc)
sql = <<bigquery2>>
clicks_all = pd.read_gbq(sql, private_key = private_key_loc)
ctr = pd.merge(impressions_all, clicks_all,
how = 'left',
left_on = ['fullvisitorID','visitNumber','hits_hitnumber','visit_date','spid_seen' ],
right_on = ['fullvisitorID','visitNumber','hits_hitNumber','visit_date','SPID_clicked'])
C #
GoogleCredential credential = GoogleCredential.FromFile("<<FILE>>");
var client = BigQueryClient.Create("<<ProjectId>>",credential);
string sql = $@"<BigQuery";
BigQueryResults impressions = client.ExecuteQuery(sql,
null, new QueryOptions { UseLegacySql = true });
string sql = $@"<BigQuery2>>";
BigQueryResults clicks = client.ExecuteQuery(sql,
null, new QueryOptions { UseLegacySql = true });
var ctr = from impression in impressions
from click in clicks
where impression["fullvisitorID"] == click["fullvisitorID"]
&& impression["visitNumber"] == click["visitNumber"]
&& impression["hits_hitnumber"] == click["hits_hitnumber"]
&& impression["visit_date"] == click["visit_date"]
&& impression["spid_seen"] == click["SPID_clicked"]
select new {impression, click};
ctr = ctr.ToList();
Код висит на последней строке.
РЕДАКТИРОВАТЬ:
Я пытался материализовать как показы, так и клики, вызывая ToList () перед объединением.Кажется, не имеет значения.