草庐IT

scala-cats

全部标签

scala - Spark 连接到本地 Hive 而不是远程

我正在使用SpringFramework创建一个API来查询我在Hadoop中的一些表。我使用的命令:println("-----------------------------------------------------------------before)valspark=SparkSession.builder().appName("API").master("local[*]).enableHiveSupport().getOrCreate()println("---------------------------------------------------------

scala - 使用scala将文件复制到hadoop hdfs?

我正在尝试将本地计算机上的文件复制到我的hdfs。但是,我不确定如何在Scala中执行此操作,因为我正在编写的脚本当前写入本地CSV文件。如何使用scala将此文件移动到HDFS?编辑:我现在做了什么:valhiveServer=newHiveJDBCvalfile=newFile(TMP_DIR,fileName)valfirstRow=getFirstRow(tableName,hiveServer)valrestData=getRestData(tableName,hiveServer)withPrintWriter(file){printWriter=>printWriter.

scala - yarn 上的 Spark 提交没有将 jar 分发到 nm-local-dir

1、版本Spark:2.0.0标度:2.11.8java:1.8.0_91hadoop:2.7.22、问题:当我在yarn上提交scala程序到spark时,它抛出一个异常:Causedby:java.lang.IllegalStateException:Librarydirectory'/opt/hadoop/tmp/nm-local-dir/usercache/hadoop/appcache/application_1471514504287_0021/container_1471514504287_0021_01_000002/assembly/target/scala-2.11

scala - Hadoop 中的快速递归文件夹删除

我正在尝试递归删除HDFS中的文件夹。就像是:fs.delete(路径,真)但是,我要删除的文件夹中包含大量文件。有什么办法可以快速删除文件夹?我的假设是真正的递归不会遍历每个文件并批量删除文件夹,但情况似乎并非如此,因为我可以看到一个一个地删除文件。请告知您的建议。我在EMR-spark上使用scala并尝试删除S3中的文件。 最佳答案 使用java库。Scala与之完全兼容。valfs=FileSystem.get(getConf())fs.delete(newPath("path/to/file"),true)//delete

java - 如何在 Scala 中使用 mapPartitions?

我试图在Scala中使用mapPartitions但出现以下错误。[error]found:Unit[error]required:Iterator[?][error]Erroroccurredinanapplicationinvolvingdefaultarguments.[error]rdd.mapPartitions(showParts)我调用mapPartitions函数如下。rdd.mapPartitions(showParts)其中showParts函数定义如下。defshowParts(iter:Iterator[(Long,Array[String])])={while

scala - Scalding TypedPipe API 外部操作模式

我有一本AntoniosChalkiopoulos的ProgrammingMapReducewithScalding。在书中,他讨论了Scalding代码的外部操作设计模式。你可以在他的网站上看到一个例子here.我选择使用TypeSafeAPI.自然地,这会带来新的挑战,但我更喜欢它而不是FieldsAPI,后者是我之前提到的书中和网站中大量讨论的内容。我想知道人们是如何使用类型安全API实现外部操作模式的。我的初步实现如下:Icreateaclassthatextendscom.twitter.scalding.JobwhichwillserveasmyScaldingjobcla

scala - Spark 在 hdfs 上写入 Parquet

我安装了3个节点hadoop和spark。我想从rdbms中获取数据到数据帧中,并将这些数据写入HDFS上的Parquet。“dfs.replication”值为1。当我使用以下命令尝试此操作时,我看到所有HDFSblock都位于我执行spark-shell的节点上。scala>xfact.write.parquet("hdfs://sparknode01.localdomain:9000/xfact")这是预期的行为还是应该将所有block分布在整个集群中?谢谢 最佳答案 由于您正在将数据写入HDFS,因此这不依赖于spark,而

scala - 将 Spark 流数据写入并附加到 HDFS 中的文本文件

我正在创建一个sparkscala代码,我在其中从MQTT服务器读取连续流。我在yarn集群模式下运行我的工作。我想将此流保存并附加到HDFS中的单个文本文件中。我将每1秒接收一次数据流。所以我需要将这些数据附加到HDFS中的单个文本文件中。谁能帮忙。 最佳答案 使用数据框和使用模式Append这将在每次新记录出现时追加数据。valsqlContext=neworg.apache.spark.sql.SQLContext(context)importsqlContext.implicits._stream.map(_.value).

scala - 为什么 Writable 的隐式转换不起作用

SparkContext在Writable之间定义了几个隐式转换和它们的原始类型,比如LongWritableLong,TextString.测试案例1:我正在使用以下代码合并小文件@TestdeftestCombineSmallFiles():Unit={valpath="file:///d:/logs"valrdd=sc.newAPIHadoopFile[LongWritable,Text,CombineTextInputFormat](path)println(s"rddpartitionnumberis${rdd.partitions.length}")println(s"li

scala - AWS S3 中的 FileUtil.copyMerge()

我已经使用以下代码将DataFrame作为text格式加载到HDFS中。finalDataFrame是DataFramefinalDataFrame.repartition(1).rdd.saveAsTextFile(targetFile)执行上面的代码后,我发现用我提供的文件名创建了一个目录,并在该目录下创建了一个文件,但不是文本格式。文件名类似于part-00000。我已经使用下面的代码在HDFS中解决了这个问题。valhadoopConfig=newConfiguration()valhdfs=FileSystem.get(hadoopConfig)FileUtil.copyMe