<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                **注意:** UDF函數必須有返回值,可以返回null,但不能是void。 **1. 添加依賴** *`pom.xml`* ```xml <repositories> <repository> <id>cloudera</id> <url>https://repository.cloudera.com/artifactory/cloudera-repos/</url> </repository> </repositories> <dependencies> <dependency> <groupId>org.apache.hadoop</groupId> <artifactId>hadoop-common</artifactId> <version>2.6.0-cdh5.14.2</version> </dependency> <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-exec</artifactId> <version>1.1.0-cdh5.14.2</version> </dependency> </dependencies> <!-- 打包插件 --> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <version>3.3</version> <configuration> <source>1.8</source> <target>1.8</target> </configuration> </plugin> <plugin> <artifactId>maven-assembly-plugin</artifactId> <executions> <execution> <phase>package</phase> <goals> <goal>single</goal> </goals> </execution> </executions> <configuration> <descriptorRefs> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs> </configuration> </plugin> </plugins> </build> ``` **2. 編寫一個類** *`udf/Str2Lower.java`* ```java package udf; import org.apache.hadoop.hive.ql.exec.UDF; import org.apache.hadoop.io.Text; /***** 繼承 org.apache.hadoop.hive.ql.exec.UDF *********/ public class Str2Lower extends UDF { /****** 編寫evaluate函數,該函數不是重寫UDF的函數,但函數名不能更改 ******/ public Text evaluate(Text s) { if (s == null) { return null; } return new Text(s.toString().toLowerCase()); } } ``` **3. 打包上傳到服務器**:udf-1.0-SNAPSHOT.jar 如果報錯:Could not find artifact eigenbase:eigenbase-properties:pom:1.1.4 in cloudera 不用去管它。 **4. 將jar添加到Hive的classpath中** ```sql 0: jdbc:hive2://hadoop101:10000> add jar /opt/software/udf-1.0-SNAPSHOT.jar; No rows affected (0.008 seconds) ``` **5. 創建臨時函數與開發好的 java class 關聯** ```sql 0: jdbc:hive2://hadoop101:10000> create temporary function my_lower as 'udf.Str2Lower'; No rows affected (0.02 seconds) ``` **6. 使用自定義的函數** ```sql 0: jdbc:hive2://hadoop101:10000> select my_lower(array('ABC')[0]); +------+--+ | _c0 | +------+--+ | abc | +------+--+ ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看