Python ';错误的FS。。预期s3n://';从Spark 2.0写入配置单元表时

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

我正在尝试使用Spark 2.0中的pyspark将数据插入配置单元表。这是我的密码-

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的行,因为我得到了错误。如果配置中存在冲突,是否有方法在代码中解决冲突?