Hadoop Pig Uv

Jun 07, 2016 pm 04:27 PM
hadoop pig beberapa jenis berurusan dengan Cara mengira

UV计算的方式,有好几种处理方式,粗略计算的方式有 ip, 或者服务器下发一个 id,如百度用的好像是 BDUSS或者BAIDUID之类的 但是要计算手机的用户的UV好像比PC上面复杂一点,这得感谢很多山寨厂商,并且各种平台,还有用户权限很多因素。 如 Android有的版本

UV计算的方式,有好几种处理方式,粗略计算的方式有 ip, 或者服务器下发一个 id,如百度用的好像是 BDUSS或者BAIDUID之类的
但是要计算手机的用户的UV好像比PC上面复杂一点,这得感谢很多山寨厂商,并且各种平台,还有用户权限很多因素。
如 Android有的版本如果要获取用户的 mac或者imei之类的,必须用户授权,ios平台的mac和openudid之类的,也会有这种情况
计算UV的标准,分平台,Android是用mac+imei,而ios是用 mac+openudid。

以android平台分例,会存在如下四种情况

MAC IMEI
A 1
1
A
B 2
C
3
D 4

从上面的例子可以看出存在如下几种情况
1. 有mac 并且有imei
2. 有mac, 无imei
3. 无mac, 有imei
4. 无mac,无imei

计算uv的方法很简单,基本思路如下
1. 先找出有mac并且有imei的做为集合A
2. 找出MAC非空的集合标记为B
3. 找出MAC为空的集合标记为C 4. 用B LEFT JOIN A BY MAC得到集合D
5. FILTER D by imei IS NULL得到集合E 6. 用C LEFT JOIN A BY imei 得到集合F
7. FILTER F by mac IS NULL 得到集合G 8. UNIQUESET = UNION G, E, A

按照上面的计算步骤,用pig实现如下

<code>    A = FILTER UVSET BY (mac is not null) AND (imei is not null);
    B = FILTER UVSET BY (mac is not null);
    C = FILTER UVSET BY (mac is null);
    D = JOIN B BY mac LEFT OUTER, A BY mac;
    E = FILTER D by (A::mac is null);
    E1 = FOREACH E GENERATE B::mac as mac, B::imei as imei;
    F = JOIN C BY imei LEFT OUTER, A BY imei;
    G = FILTER F BY (A::imei is null);
    G1 = FOREACH G GENERATE G::mac as mac, G::imei as imei;
    UNIQUESET = UNION G1, E1, A;
    TMPSET = GROUP UNIQUESET ALL;
    OUTRES = FOREACH TMPSET GENERATE COUNT(UNIQUESET);
    DUMP OUTRES;
</code>
Salin selepas log masuk
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Cara mengira penambahan, penolakan, pendaraban dan pembahagian dalam dokumen perkataan Cara mengira penambahan, penolakan, pendaraban dan pembahagian dalam dokumen perkataan Mar 19, 2024 pm 08:13 PM

Cara mengira penambahan, penolakan, pendaraban dan pembahagian dalam dokumen perkataan

Pendaraban matriks universal CUDA: dari kemasukan kepada kemahiran! Pendaraban matriks universal CUDA: dari kemasukan kepada kemahiran! Mar 25, 2024 pm 12:30 PM

Pendaraban matriks universal CUDA: dari kemasukan kepada kemahiran!

Proses operasi hos perkhidmatan WIN10 yang menduduki terlalu banyak CPU Proses operasi hos perkhidmatan WIN10 yang menduduki terlalu banyak CPU Mar 27, 2024 pm 02:41 PM

Proses operasi hos perkhidmatan WIN10 yang menduduki terlalu banyak CPU

Cara mengira bilangan elemen dalam senarai menggunakan fungsi count() Python Cara mengira bilangan elemen dalam senarai menggunakan fungsi count() Python Nov 18, 2023 pm 02:53 PM

Cara mengira bilangan elemen dalam senarai menggunakan fungsi count() Python

Panduan ringkas untuk manipulasi fail CSV Panduan ringkas untuk manipulasi fail CSV Dec 26, 2023 pm 02:23 PM

Panduan ringkas untuk manipulasi fail CSV

Cara menggunakan fungsi Math.Pow dalam C# untuk mengira kuasa nombor tertentu Cara menggunakan fungsi Math.Pow dalam C# untuk mengira kuasa nombor tertentu Nov 18, 2023 am 11:32 AM

Cara menggunakan fungsi Math.Pow dalam C# untuk mengira kuasa nombor tertentu

Ketahui cara mengendalikan aksara khas dan menukar petikan tunggal dalam PHP Ketahui cara mengendalikan aksara khas dan menukar petikan tunggal dalam PHP Mar 27, 2024 pm 12:39 PM

Ketahui cara mengendalikan aksara khas dan menukar petikan tunggal dalam PHP

Petua pemprosesan tarikh PHP: Bagaimana untuk mengira perbezaan bulan antara tarikh menggunakan PHP? Petua pemprosesan tarikh PHP: Bagaimana untuk mengira perbezaan bulan antara tarikh menggunakan PHP? Mar 20, 2024 am 11:24 AM

Petua pemprosesan tarikh PHP: Bagaimana untuk mengira perbezaan bulan antara tarikh menggunakan PHP?

See all articles