国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

spark sql語法

IT那活兒 / 3227人閱讀
spark sql語法

點擊上方“IT那活兒”,關注后了解更多內容,不管IT什么活兒,干就完了!!!


說  明


Spark SQL也可以通過設置參數來使其符合ANSI標準(結構化查詢語言(SQL)是用于訪問和管理數據庫的數據庫管理員(DBA)的標準語言),通過設置spark.sql.ansi.enabled=’true’(默認值是false)選項來控制spark sql是否符合ANSI標準,當spark.sql.storeAssignmentPolicy(默認值為ANSI)選項為ANSI時,spark sql符合ANSI標準的存儲分配原則,這兩個配置選項是相互獨立的。


01


基本語法


1.1 算數運算
spark sql進行算數運算時不會檢查長度溢出,例如:
結果為:
1.2 類型轉換
Spark sql有三種類型轉換,顯示轉換、強制類型轉換和存儲分配轉換。
當設置spark.sql.ansi.enabled=true時,非法的類型轉換就會拋出運行時異常;
當設置spark.sql.storeAssigmentPolicy=”ANSI”時,insert into語法拋出語義分析異常。
ANSI標準不允許以下直接的類型轉換,NumbericType <=> BooleanType;StringType<=>BinaryType。
下表給出了強制類型轉換中的組合,Y表示組合有效,N表示無效。
1.3 NULL值處理
1)比較運算符
Spark sql支持標準的比較操作符,例如“>”、“>=”、“=”、“<”和“<=”,當其中一個操作數unknow或NULL時,結果就為unknow或NULL,為了比較空值是否相等,spark提供了操作符“<=>”,當一個操作數為unknow或NULL時返回false,當兩個操作數都為unknow或NULL時,返回值為true。
例如:
2)邏輯判斷操作符
邏輯判斷操作符有and、or和not,參數為邏輯表達式,返回值為Boolean類型。
例如:
一些Spark sql函數參數為NULL,則返回結果也為NULL,例如:
還有一些可以處理NULL值得函數,例如:
3)聚合函數對于NULL值得處理
聚合函數有MAX、MIN、AVG、SUM、EVERY、ANY、SOME。
  • COUNT(*)返回的所有的數據個數
  • COUNT(NAME)返回的是NAME不為NULL的個數。
  • 其他聚合函數都為將NULL排除再進行操作。
  • WHERE、HAVING、JOIN字句中NULL值得處理。
  • WHERE字句中將會排除過濾條件為NULL的數據。
  • WHERE NAME IS NULL將會返回NAME為NULL的數據。
  • HAVING字句將會將為NULL的數據過濾掉。
  • JOIN字句中將會將為NULL值得數據過濾掉,但是如果使用<=>作為關聯條件時將會一塊將NULL進行返回。意思就是兩邊關聯條件如果都為NULL也是可以返回的。
  • GROUP BY、DISTINCT對NULL值都會進行處理,不會排除為NULL值得數據。
  • ORDER BY字句也會將NULL進行排序,默認情況下,NULL值得數據都會排在最前面,如果想排在最后可以:ORDER BY AGE NULLS  LAST進行處理。
  • EXISTS和NOT EXISTS字句中,也不會將NULL值進行排除。


02


函  數


內置函數見:https://spark.apache.org/docs/latest/api/sql/,里面包括了各種字符串,日期,轉換等非常有用的內置函數。
自定義函數(UDF)
當內置函數不能滿足需求時也可以自己定義函數,使用方法如下:
1)首先定義函數:
例如該函數作用于字符串類型,按照“,”進行切割,然后返回一個元組,然后注冊函數:
2)最后是使用函數:


03


數據類型


Spark sql和dataFrame支持以下數據類型:
1)數字類型
ByteType、ShortType、IntegerType、LongType、FloatType、DoubleType、DecimalType、BigDecimal 。
2)字符串類型
StringType、VarcharType(StringType 類型變體,有長度限制)、CharType(VarcharType類型變體,固定長度)。
3)二進制類型
BinaryType
4)Boolean類型
BooleanType
5)時間類型
TimestampType(到秒)、DateType(到天)
6)復雜類型
  • ArrayType(elementType, containsNull):表示元素序列數據類型,containsNull用于指示是否可以包括空值。
  • MapType(keyType, valueType, valueContainsNull)用于表示鍵值對數據類型,其中key不能為空值,valueContainsNull指示值是否可以為空。
  • StructType(fields):一系列由StructField(name, dataType, nullable)定義的數據類型,nullable指示是否可以為空。
通過import org.apache.spark.sql.types._ 來使用這些數據類型。
例如:


end



本文作者:潘宗昊

本文來源:IT那活兒(上海新炬王翦團隊)

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/129645.html

相關文章

  • Spark SQL知識點與實戰

    摘要:是最新的查詢起始點,實質上是和的組合,所以在和上可用的在上同樣是可以使用的。轉換為轉換為其實就是對的封裝,所以可以直接獲取內部的注意此時得到的存儲類型為是具有強類型的數據集合,需要提供對應的類型信息。Spark SQL概述1、什么是Spark SQLSpark SQL是Spark用于結構化數據(structured data)處理的Spark模塊。與基本的Spark RDD API不同,Sp...

    番茄西紅柿 評論0 收藏2637
  • Spark SQL知識點大全與實戰

    摘要:本文發于我的個人博客知識點大全與實戰我正在大數據技術派和朋友們討論有趣的話題,你也來加入吧概述什么是是用于結構化數據處理的模塊。是最新的查詢起始點,實質上是和的組合,所以在和上可用的在上同樣是可以使用的。 關注公眾號:大數據技術派,回復資料,領取1000G資料。本文發于我的個人博客:Spark SQL知識點大全...

    番茄西紅柿 評論0 收藏2637
  • Spark SQL學習筆記

    摘要:是中處理結構化數據的模塊。可以從很多數據源加載數據并構造得到,如結構化數據文件,中的表,外部數據庫,或者已有的。使用反射機制,推導包含指定類型對象的。這一功能應該優先于使用。隨后,將會掃描必要的列,并自動調整壓縮比例,以減少內存占用和壓力。 Spark SQL是Spark中處理結構化數據的模塊。與基礎的Spark RDD API不同,Spark SQL的接口提供了更多關于數據的結構信息...

    qieangel2013 評論0 收藏0
  • SQLflow:基于python開發的分布式機器學習平臺, 支持通過寫sql的方式,運行spark,

    摘要:主頁腳本頁面單頁面注意下載文件配置中的路徑。一個簡單的操作集群的是不是很簡單。正在新增版深度學習功能謝謝支持。 簡書博客: https://www.jianshu.com/u/3fe... 百度云搜索:http://www.lqkweb.com 搜網盤:http://www.swpan.cn 淘寶券搜索:http://www.wodecai.cn 淘寶券:http://www....

    legendaryedu 評論0 收藏0

發表評論

0條評論

IT那活兒

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<