在Spark

时间:2016-07-06 19:10:48

标签: hadoop apache-spark

我正在从一个文件夹中读取大约20,000个JSON文件,每个文件的大小约为10 MB。下面的代码大约需要30分钟才能读取这些文件。

有25个D4类型的工作节点(Azure HDInsight)。

var rawJson =  sqlContext.read.json("/data/*.json")

以下是我正在使用的作业配置。

" - driverMemory&#34 ;, "7克&#34 ;, " - executorCores&#34 ;, " 3&#34 ;, " - executorMemory&#34 ;, "4克&#34 ;, " - numExecutors&#34 ;,  " 32"

JSON架构如下所示。不同的文件在'属性中包含不同数量的字段。部分。

{  
  "name": "AssetName",
  "time": "2016-06-20T11:57:19.4941368-04:00",
  "data": {
    "type": "EventData",
    "dataDetails": {
      "name": "EventName",
      "measurements": {        
        "StartTime": 61058529,
        "EndTime": 61058737,
        "Duration": 208,
        "ID": 26509812,
        "Version": 24720
      },
      "properties": {
        "identifier": "Foo",
        "EventId": "6b613d8D-2f65-447e-bf6d-9e9133c0b803",
        "TagGuid": "{9E4fe7c1-cf8a-4527-fd27-c0c58c0b1fed}",
        "property1": "val1",
        "property2": "val2",
        "property3": "val3",
        "property4": "False"
      }
    }
  }
} 

在不添加更多资源的情况下,是否有更高效/更高效的方法来读取这些json文件?

谢谢!

1 个答案:

答案 0 :(得分:0)

sqlContext.read.json方法不会将分区数作为输入。尝试创建RDD [String]并控制并行性!!!

<ion-view title="Login" id="page2" class=" ">
    <ion-content padding="true" class="has-header">
        <form id="login-form1" class="list ">
            <ion-list id="login-list1" class=" ">
                <label class="item item-input " id="login-input1">
                    <span class="input-label">Username</span>
                    <input type="text" placeholder="">
                </label>
                <label class="item item-input " id="login-input2">
                    <span class="input-label">Password</span>
                    <input type="password" placeholder="">
                </label>
            </ion-list>
            <div class="spacer" style="height: 40px;"></div>
            <a ui-sref="chats" id="login-button3" style="border-radius:15px 15px 15px 15px;" class=" button button-calm  button-block ">Log in</a>
            <a ui-sref="signup" id="login-button4" class=" button button-positive  button-block button-clear ">Or create an account</a>
        </form>
    </ion-content>
</ion-view>