Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/apache-spark/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 将Excel文档导入Zeppelin以构建临时表的有效方法_Sql_Apache Spark - Fatal编程技术网

Sql 将Excel文档导入Zeppelin以构建临时表的有效方法

Sql 将Excel文档导入Zeppelin以构建临时表的有效方法,sql,apache-spark,Sql,Apache Spark,我有两个excel文档(一个与收入相关,另一个用于人口统计),我正在使用它们构建表格,以便对现有数据进行查询。包含收入数据的文件非常简单,有三个不同的列,因此我可以通过以下两个步骤构建表: (一) (二) 然而,人口统计数据要详细得多,包含大约37个不同的列。构建这些列并将数据插入临时表的有效方法是什么 假设您有一个Excel文件,如下所示: A B C D E F G H 1 SITEID SUBJID INITIA

我有两个excel文档(一个与收入相关,另一个用于人口统计),我正在使用它们构建表格,以便对现有数据进行查询。包含收入数据的文件非常简单,有三个不同的列,因此我可以通过以下两个步骤构建表:

(一)

(二)


然而,人口统计数据要详细得多,包含大约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