Python ';错误的FS。。预期s3n://';从Spark 2.0写入配置单元表时
我正在尝试使用Spark 2.0中的pyspark将数据插入配置单元表。这是我的密码-Python ';错误的FS。。预期s3n://';从Spark 2.0写入配置单元表时,python,apache-spark,hive,pyspark,apache-spark-sql,Python,Apache Spark,Hive,Pyspark,Apache Spark Sql,我正在尝试使用Spark 2.0中的pyspark将数据插入配置单元表。这是我的密码- import pandas as pd from pyspark.sql import SparkSession spark = SparkSession\ .builder\ .enableHiveSupport()\ .appName("sparkApp")\ .getOrCreate() spark._jsc.hadoopConfiguration().set('f
import pandas as pd
from pyspark.sql import SparkSession
spark = SparkSession\
.builder\
.enableHiveSupport()\
.appName("sparkApp")\
.getOrCreate()
spark._jsc.hadoopConfiguration().set('fs.defaultFS', 's3n')
data = pd.read_csv('s3n://some-path',sep = '\t',compression = 'gzip')
//some manipulation in data
data_sdf = spark.createDataFrame(data)
data_sdf.createOrReplaceTempView('data')
spark.sql(
'INSERT OVERWRITE TABLE schmea.my_table\
PARTITION (col1,col2)\
select col1,col2,col3,col4 from data')
这将导致一个异常-
App > pyspark.sql.utils.IllegalArgumentException: 'Wrong FS: s3://bucket/a-path, expected: s3n://bucket'
我在EMR上使用配置单元,配置单元表的数据文件实际上驻留在S3上。如何避免此异常?看起来您与s3n和s3之间存在冲突,并且您的配置单元配置和hdfs配置似乎将defaultFS设置为s3。@AyanGuha即使我没有将代码中的defaultFS设置为s3n,我也会收到此错误。事实上,我在代码中添加了设置defaultFS的行,因为我得到了错误。如果配置中存在冲突,有没有办法在代码中解决?看起来您与s3n和s3之间存在冲突,并且您的配置单元配置和hdfs配置似乎将defaultFS设置为s3。@AyanGuha即使我没有将代码中的defaultFS设置为s3n,我也会收到此错误。事实上,我在代码中添加了设置defaultFS的行,因为我得到了错误。如果配置中存在冲突,是否有方法在代码中解决冲突?