我对Spark很陌生,并试图接受它。我们使用Spark-SQL主要用于ETL的数据转换/操作。最近,我偶然发现了一些用于操作星火复杂类型的SparkSQL函数(array、map、struct等)。我遇到了某些函数,如array()、array_zip()、struct()、map_concat()、map_from_arrays()等。我在网上搜索,但不幸的是,我无法获得足够的示例/解释,让我对它们有一个清晰的理解。
请任何人提供一些它的应用程序的例子,这样我就能更好地理解它们在我们的项目任务中的应用。
注意:我只能访问Spark-SQL,但不能访问 PySpark-SQL。
谢谢
发布于 2020-05-31 17:54:55
请通过下面的解释,
阵列
数组(expr,.)-返回具有给定元素的数组。
示例:
选择阵列(1,2,3);
1,2,3
arrays_zip
arrays_zip(a1,a2,.)-返回一个合并的结构数组,其中N-结构包含输入数组的所有N-值.
示例:
选择arrays_zip(数组(1,2,3),数组(2,3,4));
{"0":1,"1":2},{"0":2,"1":3},{"0":3,"1":4}
选择arrays_zip(数组(1,2),数组(2,3),数组(3,4));
{"0":1,"1":2,"2":3},{"0":2,"1":3,"2":4}
结构
struct(col1,col2,col3,.)-创建一个具有给定字段值的结构。
映射
map(key0,value0,key1,value1,.)--用给定的键/值对创建映射。
示例:
选择map(1.0,'2',3.0,'4');
{1.0:"2",3.0:"4"}
map_concat
map_concat(map,.)-返回所有给定映射的合并
示例:
选择map_concat(map(1,'a',2,'b'),map(2,'c',3,‘d’);
{1:"a",2:"c",3:"d"}
map_from_arrays
Map_from_arrays(键、值)-使用给定的键/值数组创建一个映射。键中的所有元素都不应为空。
示例:
选择map_from_arrays(数组(1.0,3.0),数组(‘2’,'4'));
{1.0:"2",3.0:"4"}
更多内置的火花功能,请通过下面的链接,
https://stackoverflow.com/questions/62120009
复制相似问题