gpt4 book ai didi

apache-spark - 为什么 sqlContext.read.load 和 sqlContext.read.text 有区别?

转载 作者:行者123 更新时间:2023-12-05 00:49:30 30 4
gpt4 key购买 nike

我只是想将文本文件读入 pyspark RDD,我注意到 sqlContext.read.load 之间的巨大差异和 sqlContext.read.text .

s3_single_file_inpath='s3a://bucket-name/file_name'

indata = sqlContext.read.load(s3_single_file_inpath, format='com.databricks.spark.csv', header='true', inferSchema='false',sep=',')
indata = sqlContext.read.text(s3_single_file_inpath)
sqlContext.read.load上面的命令失败
Py4JJavaError: An error occurred while calling o227.load.
: java.lang.ClassNotFoundException: Failed to find data source: com.databricks.spark.csv. Please find packages at http://spark-packages.org

但是第二个成功了吗?

现在,我对此感到困惑,因为我在网上看到的所有资源都说要使用 sqlContext.read.load包括这个: https://spark.apache.org/docs/1.6.1/sql-programming-guide.html .

我不清楚何时使用这些中的哪一个。这些有明显的区别吗?

最佳答案

Why is difference between sqlContext.read.load and sqlContext.read.text?


sqlContext.read.load假设 parquet作为数据源格式,而 sqlContext.read.text假设 text格式。

sqlContext.read.load您可以使用 format 定义数据源格式范围。

取决于 Spark 的版本 1.6 对比 2.x 您可能会也可能不会加载外部 Spark 包以支持 csv 格式。

从 Spark 2.0 开始,您不再需要加载 spark-csv Spark 包自(引用 official documentation ):

NOTE: This functionality has been inlined in Apache Spark 2.x. This package is in maintenance mode and we only accept critical bug fixes.



这将解释为什么您会感到困惑,因为您可能一直在使用 Spark 1.6.x 并且没有加载 Spark 包来拥有 csv支持。

Now, I am confused by this because all of the resources I see online say to use sqlContext.read.load including this one: https://spark.apache.org/docs/1.6.1/sql-programming-guide.html.



https://spark.apache.org/docs/1.6.1/sql-programming-guide.html适用于 Spark 1.6.1 时 spark-csv Spark 包不是 Spark 的一部分。它发生在 Spark 2.0 中。

It is not clear to me when to use which of these to use when. Is there a clear distinction between these?



如果您使用 Spark 2.x,实际上没有。

但是,如果您使用 Spark 1.6.x, spark-csv必须使用 --packages 单独加载选项(如 Using with Spark shell 中所述):

This package can be added to Spark using the --packages command line option. For example, to include it when starting the spark shell



事实上,您仍然可以使用 com.databricks.spark.csv在 Spark 2.x 中明确格式化,因为它在内部被识别。

关于apache-spark - 为什么 sqlContext.read.load 和 sqlContext.read.text 有区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47645001/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com