aboutsummaryrefslogtreecommitdiff
path: root/sql/core
diff options
context:
space:
mode:
authorShilei <shilei.qian@intel.com>2015-06-30 09:49:58 -0700
committerDavies Liu <davies@databricks.com>2015-06-30 09:49:58 -0700
commit722aa5f48ec105bf23eee2361adddfe3a0cd6fc4 (patch)
tree315a95999a4c51ea9194d28b34a3e108541996ce /sql/core
parenta48e61915354d33fb98944a8eb5a5d48dd102041 (diff)
downloadspark-722aa5f48ec105bf23eee2361adddfe3a0cd6fc4.tar.gz
spark-722aa5f48ec105bf23eee2361adddfe3a0cd6fc4.tar.bz2
spark-722aa5f48ec105bf23eee2361adddfe3a0cd6fc4.zip
[SPARK-8236] [SQL] misc functions: crc32
https://issues.apache.org/jira/browse/SPARK-8236 Author: Shilei <shilei.qian@intel.com> Closes #7108 from qiansl127/Crc32 and squashes the following commits: 5477352 [Shilei] Change to AutoCastInputTypes 5f16e5d [Shilei] Add misc function crc32
Diffstat (limited to 'sql/core')
-rw-r--r--sql/core/src/main/scala/org/apache/spark/sql/functions.scala16
-rw-r--r--sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala11
2 files changed, 27 insertions, 0 deletions
diff --git a/sql/core/src/main/scala/org/apache/spark/sql/functions.scala b/sql/core/src/main/scala/org/apache/spark/sql/functions.scala
index 4d9a019058..6331fe6105 100644
--- a/sql/core/src/main/scala/org/apache/spark/sql/functions.scala
+++ b/sql/core/src/main/scala/org/apache/spark/sql/functions.scala
@@ -1466,6 +1466,22 @@ object functions {
*/
def sha2(columnName: String, numBits: Int): Column = sha2(Column(columnName), numBits)
+ /**
+ * Calculates the cyclic redundancy check value and returns the value as a bigint.
+ *
+ * @group misc_funcs
+ * @since 1.5.0
+ */
+ def crc32(e: Column): Column = Crc32(e.expr)
+
+ /**
+ * Calculates the cyclic redundancy check value and returns the value as a bigint.
+ *
+ * @group misc_funcs
+ * @since 1.5.0
+ */
+ def crc32(columnName: String): Column = crc32(Column(columnName))
+
//////////////////////////////////////////////////////////////////////////////////////////////
// String functions
//////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala
index abfd47c811..11a8767ead 100644
--- a/sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala
+++ b/sql/core/src/test/scala/org/apache/spark/sql/DataFrameFunctionsSuite.scala
@@ -173,6 +173,17 @@ class DataFrameFunctionsSuite extends QueryTest {
}
}
+ test("misc crc32 function") {
+ val df = Seq(("ABC", Array[Byte](1, 2, 3, 4, 5, 6))).toDF("a", "b")
+ checkAnswer(
+ df.select(crc32($"a"), crc32("b")),
+ Row(2743272264L, 2180413220L))
+
+ checkAnswer(
+ df.selectExpr("crc32(a)", "crc32(b)"),
+ Row(2743272264L, 2180413220L))
+ }
+
test("string length function") {
checkAnswer(
nullStrings.select(strlen($"s"), strlen("s")),