官术网_书友最值得收藏!

3.2.1 基于Socket的數據源

DataStream API支持從Socket套接字讀取數據。只需指定要從其中讀取數據的主機和端口號。讀取Socket套接字的數據源函數的定義如下。

(1)socketTextStream(hostName,port):指定主機和端口號。

(2)socketTextStream(hostName,port,delimiter):可指定分隔符。

(3)socketTextStream(hostName,port,delimiter,maxRetry):可指定API應該嘗試獲取數據的最大次數。

【示例3-2】 Socket數據源:流應用程序示例,它接收來自Web套接字的單詞。

Scala代碼如下:

Java實現:

建議按以下步驟執(zhí)行這個流程序。

(1)啟動一個運行在9999端口的netcat服務器。打開一個終端窗口,執(zhí)行的命令如下:

(2)運行上面編寫的流應用程序。

(3)在netcat運行窗口,輸入以下內容,并按Enter鍵:

(4)在程序執(zhí)行窗口,可以看到計算后的輸出如下:

在上面的Java示例代碼中,也可以將map()的邏輯代碼合并到flatMap()函數中,以精簡代碼。修改后的代碼如下:

在前面的Java代碼示例中,向map()和flatMap()傳入的都是匿名內部類。也可以代之以Java 1.8引入的Lambda函數,以簡化代碼的編寫。使用Lambda函數重構的代碼如下:

主站蜘蛛池模板: 翼城县| 玛纳斯县| 碌曲县| 汕尾市| 洛南县| 大新县| 海宁市| 肃北| 南部县| 辉县市| 涞水县| 潍坊市| 探索| 遂溪县| 望都县| 栖霞市| 家居| 金华市| 马尔康县| 马鞍山市| 名山县| 武清区| 太仆寺旗| 永吉县| 长葛市| 古浪县| 昔阳县| 永康市| 玉环县| 周至县| 万荣县| 南宫市| 常熟市| 呼图壁县| 兴海县| 彭州市| 晴隆县| 洛南县| 易门县| 牟定县| 陇南市|