Heim >Backend-Entwicklung >PHP-Tutorial >Hive verwendet ein PHP-Skript, um die Zuordnung/Reduzierung abzuschließen
Eine der leistungsstärkeren Funktionen von Hive SQL besteht darin, dass externe Skripte zum Vervollständigen der Zuordnung/Reduzierung verwendet werden können. Die Verwendung ist wie folgt:
TRANSFORMIEREN(….) MIT „….“ AS (….).
USING kann mithilfe von PHP-Skripten verarbeitet werden. Eine spezifische Verwendung finden Sie im folgenden Beispiel.
① Erstellen Sie eine Tabelle:
<code>hive> CREATE TABLE <span>`member`</span>( > <span>`id`</span><span>int</span>, > <span>`user_name`</span><span>string</span>, > <span>`passwd`</span><span>string</span> > ) > row <span>format</span> delimited > fields terminated by <span>"\t"</span><span>//这句很必要,不然下面的文件导入会导致所有的值都变成null </span> > stored as textfile;</code>
② Bereiten Sie die folgenden data/tmp/member.dat vor
<code>1 zhangsan zs1024 2 lisi ls1991 3 wangwu ww2001 4 liumang lm1234 5 linxing lx1990</code>
③ 🎜 >
Sie können sehen:<code>hive> <span>load</span> data <span>local</span> inpath <span>'/tmp/member.dat'</span> into <span>table</span> member;</code>Die Daten sind fertig, jetzt führen wir die MD5-Verschlüsselung in der dritten Spalte durch. Wir verwenden ein PHP-Skript, um damit umzugehen. Der Code des PHP-Skripts (/tmp/changePasswd.php) lautet wie folgt:
<code>hive> <span>select</span> * <span>from</span> member; OK <span>1</span> zhangsan zs1024 <span>2</span> lisi ls1991 <span>3</span> wangwu ww2001 <span>4</span> liumang lm1234 <span>5</span> linxing lx1990</code>④ Fügen Sie das PHP-Skript zu Hive hinzu.
<code><span><span><?php</span><span>while</span>(!feof(STDIN)){ <span>$line</span> = rtrim(fgets(STDIN), <span>"\n"</span>); <span>//逐行读取</span><span>if</span> (<span>empty</span>(<span>$line</span>)) <span>continue</span>; <span>//空,跳出当次循环</span><span>$data</span> = explode(<span>"\t"</span>, <span>$line</span>); <span>//将切分出来的数组保存起来,下面判断使用</span><span>foreach</span>(<span>$data</span><span>as</span> &<span>$val</span>){ <span>$val</span> = md5(<span>$val</span>); } <span>unset</span>(<span>$val</span>); <span>echo</span> implode(<span>"\t"</span>, <span>$data</span>) . <span>"\n"</span>; }</span></code>⑤ Verwenden Sie ein PHP-Skript, um Map/Reduce auszuführen
<code>hive> <span>add</span> file /tmp/changePasswd<span>.php</span><span>;</span></span></span></code>Schließlich können wir sehen, dass sich die Daten in der Spalte passwd geändert haben:
<code>hive> insert overwrite table member > select TRANSFORM(<span>`i</span>d<span>`,</span><span>`u</span>ser_name<span>`,</span><span>`p</span>asswd<span>`)</span> using <span>"/usr/bin/php changePasswd.php"</span> > as (<span>`i</span>d<span>`,</span><span>`u</span>ser_name<span>`,</span><span>`p</span>asswd<span>`)</span> from member<span>;</span></code>
<code>hive> <span>select</span> * <span>from</span> member; OK <span>1</span> zhangsan d03eed89429cc3006cc279322c2800c5 <span>2</span> lisi <span>063401506</span>c9d9f0e49a706e3779b7428 <span>3</span> wangwu ac5a8109dbbb46c9f69ffd5fc93c11f8 <span>4</span> liumang fda8b97fd723bdbf6a754812b5ecec27 <span>5</span> linxing <span>4035378</span>ace8936e93d95aa77e7e224d4</code>Urheberrechtserklärung: Bei diesem Artikel handelt es sich um einen Originalartikel des Bloggers. Bitte geben Sie beim Nachdruck die Quelle an.
Das Obige stellt die Verwendung von PHP-Skripten zur Vervollständigung von Map/Reduction durch Hive vor, einschließlich einiger Aspekte davon. Ich hoffe, dass es für Freunde hilfreich sein wird, die sich für PHP-Tutorials interessieren.