草庐IT

sparking

全部标签

java - Apache Spark 错误使用 hadoop 将数据卸载到 AWS S3

我正在使用ApacheSparkv2.3.1并尝试在处理后将数据卸载到AWSS3。类似的东西:data.write().parquet("s3a://"+bucketName+"/"+location);配置似乎没问题:Stringregion=System.getenv("AWS_REGION");StringaccessKeyId=System.getenv("AWS_ACCESS_KEY_ID");StringsecretAccessKey=System.getenv("AWS_SECRET_ACCESS_KEY");spark.sparkContext().hadoopConf

scala - 无法使用 CSV 文件的 spark scala 显示数据帧记录

我通过使用map函数将RDD转换为DF创建了dataframe。当我尝试显示记录时,它给我exception。下面是我的代码://Createdcaseclasscaseclassemployees(emp_id:java.lang.Long,emp_name:String,job_name:String,manager_id:java.lang.Long,hire_date:String,salary:java.lang.Double,commision:java.lang.Double,dep_id:java.lang.Long);//CreatedDFvalemployeesDf

scala - 使用spark scala远程连接hbase

我在我的窗口(这是我的本地)中配置了Hadoop和spark,我在一个虚拟机(同一台机器)中设置了cloudera,它里面有hbase。我正在尝试使用sparkstream提取数据并将其放入vm中的hbase中。这有可能吗?我的尝试:打包hbaseimportorg.apache.hadoop.hbase.HBaseConfigurationimportorg.apache.hadoop.hbase.client.{ConnectionFactory,HBaseAdmin,HTable,Put,Get}objectConnect{defmain(args:Array[String]){

java - Spark 流式传输和模拟 hdfs

需要为Spark流代码实现测试。此特定代码使用thislibrary在单独的jvm中运行上述应用程序的输入是hdfs。我已经像这样启动了MiniDFSClusterexample(javaversion)但我不认为它会起作用,因为它们在两个不同的JVM中。如果我要成功测试spark流代码,模拟hdfs输入的最佳方法是什么。我大致解释了上面的场景。真正的要求是实现一个成功的cucumber测试。 最佳答案 您可以在本地模式下运行Spark并指定诸如“file:///foo/bar”之类的路径,而不是尝试模拟hdfs-然后将使用本地文件

java - Spark Elasticsearch : Multiple ES-Hadoop versions detected in the classpath

我是新手。我正在尝试运行将数据加载到elasticsearch的spark作业。我用我的代码构建了一个fatjar,并在spark-submit期间使用了它。spark-submit\--classCLASS_NAME\--masteryarn\--deploy-modecluster\--num-executors20\--executor-cores5\--executor-memory32G\--jarsEXTERNAL_JAR_FILES\PATH_TO_FAT_JARelasticsearch-hadoop依赖的maven依赖为:org.elasticsearchelasti

apache-spark - 更新和插入

我们正在将每小时JSON数据接收到HDFS中。数据大小约为每小时5-6GB。当在最终表中找到匹配记录时,然后更新(或)删除如果记录在最终数据集中不匹配,则插入记录。我们已经为USE案例尝试了Hive合并选项。这需要一个多小时来处理Hive中的合并操作。有没有其他替代方法来解决用例。所以基本上每天我们都将150GB的数据添加到配置单元中,每隔一天我们必须扫描150Gb的数据以查找是否需要更新/插入对大型数据集执行Upserts(Hadoop中的更新和插入)的最佳方法是什么。hive或HBase或尼菲。什么是流量。 最佳答案 我们正在使

scala - 从spark中的json模式动态生成df.select语句

我正在从宽字符串中选择列,其偏移量如下所示df2=df.select(substring(col("a"),4,6).as("c")).cast(IntegerType)但是我必须从字符串中提取1000列,如果我可以提供诸如列名、数据类型、宽度、起始位置和结束位置等详细信息,那么如何使用jsonsparkstruct模式生成select语句。另外,我不得不将一些列转换为intergertype或longtype,但是我观察到这些字段被像111111111将在转换为integertype时转换为1 最佳答案 如果可以使用configf

apache-spark - 无法通过 PySpark 访问 Hive

我是Hadoop/Spark/Hive新手!我创建了一个在本地运行的单节点Linux(Ubuntu18.04.1LTS)虚拟机;Hadoop3.1.0;星火:Spark2.3.1,hive:Hive-3.0.0我的Hive使用标准的DerbyDB,我可以通过终端访问Hive并创建数据库和表,然后查询这些表。我的metastore_db位于~/hivemetastore/metastore_db我还创建了以下内容:hadoopfs-mkdir-p/user/hive/仓库hadoopfs-mkdir-p/tmp/hive(注意-我在$HIVE_HOME/conf或$SPARK_HOME/

apache-spark - 重新分区以避免大量小文件

目前我有一个ETL作业,它读取几个表,执行某些转换并将它们写回每日表。我在sparksql中使用以下查询“插入dbname.tablenamePARTITION(year_month)从Spark_temp_table中选择*插入所有这些记录的目标表按年X月级别分区。每天生成的记录并不多,因此我按年X月级别进行分区。但是,当我检查分区时,我的代码每天运行时它都有约50MB的小文件(代码必须每天运行),最终我的分区中将有大约30个文件,总计约1500MB我想知道是否有办法在我每天追加记录的同时在一个分区中创建一个(或者根据block大小限制可能创建2-3个文件)我认为我能做到的方法是从我

apache-spark - java.lang.IllegalArgumentException 在 org.apache.xbean.asm5.ClassReader.<init>(未知来源)与 Java 10

每当我尝试收集我的rdd时,我就开始收到以下错误。我安装Java10.1后就发生了所以当然是把它拿出来重新安装,同样的错误。然后我安装了Java9.04同样的错误。然后我撕掉了python2.7.14,apachespark2.3.0和Hadoop2.7,同样的错误。有没有人有任何其他原因导致我不断收到错误消息?>>>fromoperatorimportadd>>>frompysparkimportSparkConf,SparkContext>>>importstring>>>importsys>>>importre>>>>>>sc=SparkContext(appName="NEW"