Sql 将Excel文档导入Zeppelin以构建临时表的有效方法
我有两个excel文档(一个与收入相关,另一个用于人口统计),我正在使用它们构建表格,以便对现有数据进行查询。包含收入数据的文件非常简单,有三个不同的列,因此我可以通过以下两个步骤构建表: (一) (二)Sql 将Excel文档导入Zeppelin以构建临时表的有效方法,sql,apache-spark,Sql,Apache Spark,我有两个excel文档(一个与收入相关,另一个用于人口统计),我正在使用它们构建表格,以便对现有数据进行查询。包含收入数据的文件非常简单,有三个不同的列,因此我可以通过以下两个步骤构建表: (一) (二) 然而,人口统计数据要详细得多,包含大约37个不同的列。构建这些列并将数据插入临时表的有效方法是什么 假设您有一个Excel文件,如下所示: A B C D E F G H 1 SITEID SUBJID INITIA
然而,人口统计数据要详细得多,包含大约37个不同的列。构建这些列并将数据插入临时表的有效方法是什么 假设您有一个Excel文件,如下所示:
A B C D E F G H
1 SITEID SUBJID INITIALS DOB STATE SEX RACE ETH
2 123 321 ABC 1/1/2001 CA M C NA
列I
(或之后)中的公式为:
=CONCAT(“插入临时数据库收入(站点ID、主题ID、首字母缩写、出生日期、州、性别、种族、ETH)值(“,A2,”,B2,”,C2,“,”,D2,”,E2,“,”,F2,“,”,G2,“,”,H2,”);”
这将产生一个字符串:
将值(123321、'ABC',36892、'CA','M','C','NA')插入临时数据库收入(站点ID、主题ID、首字母缩写、出生日期、州、性别、种族、ETH)代码>
请注意,在每个列标注之间包括“”、“
”,或者如果列具有字符串值,“”、“
”,以在结果的CONCAT()中分隔字符串
当你第一次尝试它时,这是一件痛苦的事情,你掌握了它的窍门,你甚至可以多次剪切和粘贴像a2,“,”,
这样的东西,然后编辑a2
到b2
或c2
等。直到你定义了所有37列,并在不需要的地方删除了
标记。一旦有一个CONCAT
语句可以工作,只需将它复制到所有行,就可以进行设置
我有时使用IF(A2=“”,”,CONCAT(“INSERT-INTO…”
将公式复制到数千行中,并且只有当行的第一列中有数据时,INSERT
语句才会显示。我经常在Excel工作表中创建一个新列,使用CONCAT()
函数创建一个插入表…
行,然后我将该列复制到一个.SQL文件中,并在我最喜欢的SQL管理器中运行它以导入数据。是的,编写CONCAT()
function,对于37列来说很痛苦,但是你只需要写一次。你能给我一个简单的例子来说明你的意思吗?例如,如果我在excel中有以下列,你会如何将它们放入表中:SITEID subwid缩写DOB STATE SEX RACE,这正是我想要的。非常感谢!!
%spark.sql
insert into table temp_db_income
values
('AL', '53690', '50770'),
('AK', '76560', '72865')
A B C D E F G H
1 SITEID SUBJID INITIALS DOB STATE SEX RACE ETH
2 123 321 ABC 1/1/2001 CA M C NA