azure Databricks -从文件夹中读取CSV文件

yrefmtwq  于 2023-10-22  发布在  其他
关注(0)|答案(3)|浏览(205)

SELECT * from dbfs:/FileStore/shared_uploads/prasanth/Company.csv
我试图从Azure数据块中的文件夹中选择记录,但我遇到了此错误SQL语句:分析异常:未找到表格或视图

a2mppw5e

a2mppw5e1#

我复制了同样的错误。

如果在databricks SQL中,该名称之前没有创建表或视图,则会发生此错误。在上面的例子中,你试图查询dbfs:/filepath.csv,它不是数据库SQL中的表或视图。
要在databricks SQL中访问dbfs文件,首先我们需要为其创建一个表或视图,并将csv文件数据复制到其中。然后我们可以查询该表。

代码:

%sql
/*Table creation with schema*/
CREATE OR REPLACE TABLE  table1
( 
Id int,Name varchar(32),Age int,marks int
);

/*Copying dbfs csv data into table*/
copy into table1
  from "dbfs:/FileStore/tables/mycsv2.csv"
  FILEFORMAT = csv
  FORMAT_OPTIONS('header'='true','inferSchema'='True');

select * from table1;

我的执行:

另一种替代方法(在数据库SQL中查询csv)可以使用pyspark或scala rame,如上面**@ASH**所建议的。

读取csv文件,然后创建一个临时视图。

验证码:

%python
spark_df=spark.read.csv("dbfs:/FileStore/tables/mycsv2.csv",header=True)
#Creating temporary view for the dataframe.
spark_df.createOrReplaceTempView("mycsvview1")

%sql
select * from mycsvview1;

输出供参考:

vfhzx4xs

vfhzx4xs2#

试试这样

# in Python
flightData2015 = spark\
.read\
.option("inferSchema", "true")\
.option("header", "true")\
.csv("/data/flight-data/csv/2015-summary.csv")

// in Scala
import org.apache.spark.sql.types.{StructField, StructType, StringType, LongType}
val myManualSchema = new StructType(Array(
new StructField("DEST_COUNTRY_NAME", StringType, true),
new StructField("ORIGIN_COUNTRY_NAME", StringType, true),
new StructField("count", LongType, false)
))
spark.read.format("csv")
.option("header", "true")
.option("mode", "FAILFAST")
.schema(myManualSchema)
.load("/data/flight-data/csv/2010-summary.csv")
.show(5)
jhdbpxl9

jhdbpxl93#

使用最新版本的Databricks,您可以使用以下命令:
SELECT * FROM CSV. 'dbfs:/location/csv_files/'

相关问题