hdinsight spark会话与 parquet 的问题

ekqde3dh  于 2021-07-12  发布在  Spark
关注(0)|答案(1)|浏览(402)

使用hdinsight运行spark和scala脚本。我使用的是intellij中azure插件提供的示例脚本。
它为我提供了以下代码:

val conf = new SparkConf().setAppName("MyApp")
val sc = new SparkContext(conf)

很公平。我可以这样做:

val rdd = sc.textFile("wasb:///HdiSamples/HdiSamples/SensorSampleData/hvac/HVAC.csv")

我可以保存文件:

rdd1.saveAsTextFile("wasb:///HVACout2")

不过,我期待在一个Parquet文件加载。我在别处找到的Parquet文件的代码是:

val df = spark.read.parquet("resources/Parquet/MyFile.parquet/")

上面一行给出了hdinsight中的一个错误(当我通过intellij提交jar时)。
你为什么不用

val spark = SparkSession.builder
  .master("local[*]") // adjust accordingly
  .config("spark.sql.warehouse.dir", "E:/Exp/") //change accordingly
  .appName("MySparkSession") //change accordingly
  .getOrCreate()

当我加入spark会话并摆脱spark上下文时,hdinsight中断了。我做错什么了?如何使用hdinsight创建一个spark会话或上下文,允许我阅读文本文件、parquet和其他所有内容?我怎样才能两全其美呢
我的理解是sparksession,是更好更近的方式。我们应该用什么。那么如何在hdinsight中运行它呢?
提前谢谢

qgelzfjb

qgelzfjb1#

如果我加上

val spark = SparkSession.builder().appName("Spark SQL basic").getOrCreate()

在Spark上下文行之后和Parquet地板之前,阅读部分,它工作。

相关问题