簡體   English   中英

Jaspersoft iReport-如何為Hive查詢設置化簡數量?

[英]Jaspersoft iReport - how to set number of reducers for Hive query?

我正在嘗試使用Jaspersoft iReport和Hive來運行一些報表,該報表運行良好,但是當我嘗試為Hive查詢設置減速器數量時除外。 我認為這個問題可能適用於使用Hive JDBC設置減速器數量的一般情況。

我怎樣才能做到這一點?

您不能在報表查詢中放入2條SQL語句(或HiveQL語句)。 這意味着您不能使用如下查詢字符串:

set mapred.running.reduce.limit = 25;
SELECT name, phone_office, billing_address_city, billing_address_street, billing_address_country FROM accounts;

通常,我會考慮將這樣的屬性放入JDBC連接中。 但是據我所知,Hive不支持這一點。 但是我認為您可以通過將“設置” HiveQL語句作為主要報表查詢來解決此問題。 然后將“選擇”查詢作為子數據集。 這是我測試此想法的報告的摘錄:

<subDataset name="Accounts">
    <queryString language="HiveQL">
        <![CDATA[SELECT name, phone_office, billing_address_city, billing_address_street, billing_address_country FROM accounts]]>
    </queryString>
    <field name="name" class="java.lang.String"/>
    <field name="phone_office" class="java.lang.String"/>
    <field name="billing_address_city" class="java.lang.String"/>
    <field name="billing_address_street" class="java.lang.String"/>
    <field name="billing_address_country" class="java.lang.String"/>
</subDataset>
<queryString language="HiveQL">
    <![CDATA[set mapred.running.reduce.limit = 25]]>
</queryString>

我確認該報告是這樣工作的。 正如您所期望的那樣,我的子數據集填充了Table組件。 我沒有一種簡單的方法來確認它確實限制了減速器的數量...但是應該。 (請告訴我們是否這樣做!)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM