分析多个“ avro”文件的最佳方法是什么?

时间:2019-11-11 10:37:29

标签: python bigdata avro data-analysis

我还有更多.avro文件,我想对其中包含的数据进行分析。如何将它们分组并分析各个字段的值?   这是模式:

{
  "type" : "record",
  "name" : "DNSEvoDataFlatAvro",
  "namespace" : "nl.utwente.dacs.DNSEvo.avro",
  "fields" : [ {
    "name" : "query_type",
    "type" : "string"
  }, {
    "name" : "query_name",
    "type" : "string"
  }, {
    "name" : "response_type",
    "type" : [ "null", "string" ]
  }, {
    "name" : "response_name",
    "type" : [ "null", "string" ]
  }, {
    "name" : "response_ttl",
    "type" : [ "null", "int" ]
  }, {
    "name" : "timestamp",
    "type" : "long"
  }, {
    "name" : "rtt",
    "type" : "double"
  }, {
    "name" : "worker_id",
    "type" : "int"
  }, {
    "name" : "status_code",
    "type" : "int"
  }, {
    "name" : "ad_flag",
    "type" : "int"
  }, {
    "name" : "ip4_address",
    "type" : [ "null", "string" ]
  }, {
    "name" : "ip6_address",
    "type" : [ "null", "string" ]
  }, {
    "name" : "country",
    "type" : [ "null", "string" ]
  }, {
    "name" : "as",
    "type" : [ "null", "string" ]
  }, {
    "name" : "as_full",
    "type" : [ "null", "string" ]
  }, {
    "name" : "ip_prefix",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cname_name",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dname_name",
    "type" : [ "null", "string" ]
  }, {
    "name" : "mx_address",
    "type" : [ "null", "string" ]
  }, {
    "name" : "mx_preference",
    "type" : [ "null", "int" ]
  }, {
    "name" : "mxset_hash_algorithm",
    "type" : [ "null", "string" ]
  }, {
    "name" : "mxset_hash",
    "type" : [ "null", "string" ]
  }, {
    "name" : "ns_address",
    "type" : [ "null", "string" ]
  }, {
    "name" : "nsset_hash_algorithm",
    "type" : [ "null", "string" ]
  }, {
    "name" : "nsset_hash",
    "type" : [ "null", "string" ]
  }, {
    "name" : "txt_text",
    "type" : [ "null", "string" ]
  }, {
    "name" : "txt_hash_algorithm",
    "type" : [ "null", "string" ]
  }, {
    "name" : "txt_hash",
    "type" : [ "null", "string" ]
  }, {
    "name" : "ds_key_tag",
    "type" : [ "null", "int" ]
  }, {
    "name" : "ds_algorithm",
    "type" : [ "null", "int" ]
  }, {
    "name" : "ds_digest_type",
    "type" : [ "null", "int" ]
  }, {
    "name" : "ds_digest",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_flags",
    "type" : [ "null", "int" ]
  }, {
    "name" : "dnskey_protocol",
    "type" : [ "null", "int" ]
  }, {
    "name" : "dnskey_algorithm",
    "type" : [ "null", "int" ]
  }, {
    "name" : "dnskey_pk_rsa_n",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_rsa_e",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_rsa_bitsize",
    "type" : [ "null", "int" ]
  }, {
    "name" : "dnskey_pk_eccgost_x",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_eccgost_y",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_dsa_t",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_dsa_q",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_dsa_p",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_dsa_g",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_dsa_y",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_eddsa_a",
    "type" : [ "null", "string" ]
  }, {
    "name" : "dnskey_pk_wire",
    "type" : [ "null", "string" ]
  }, {
    "name" : "nsec_next_domain_name",
    "type" : [ "null", "string" ]
  }, {
    "name" : "nsec_owner_rrset_types",
    "type" : [ "null", "string" ]
  }, {
    "name" : "nsec3_hash_algorithm",
    "type" : [ "null", "int" ]
  }, {
    "name" : "nsec3_flags",
    "type" : [ "null", "int" ]
  }, {
    "name" : "nsec3_iterations",
    "type" : [ "null", "int" ]
  }, {
    "name" : "nsec3_salt",
    "type" : [ "null", "string" ]
  }, {
    "name" : "nsec3_next_domain_name_hash",
    "type" : [ "null", "string" ]
  }, {
    "name" : "nsec3_owner_rrset_types",
    "type" : [ "null", "string" ]
  }, {
    "name" : "nsec3param_hash_algorithm",
    "type" : [ "null", "int" ]
  }, {
    "name" : "nsec3param_flags",
    "type" : [ "null", "int" ]
  }, {
    "name" : "nsec3param_iterations",
    "type" : [ "null", "int" ]
  }, {
    "name" : "nsec3param_salt",
    "type" : [ "null", "string" ]
  }, {
    "name" : "spf_text",
    "type" : [ "null", "string" ]
  }, {
    "name" : "spf_hash_algorithm",
    "type" : [ "null", "string" ]
  }, {
    "name" : "spf_hash",
    "type" : [ "null", "string" ]
  }, {
    "name" : "soa_mname",
    "type" : [ "null", "string" ]
  }, {
    "name" : "soa_rname",
    "type" : [ "null", "string" ]
  }, {
    "name" : "soa_serial",
    "type" : [ "null", "long" ]
  }, {
    "name" : "soa_refresh",
    "type" : [ "null", "long" ]
  }, {
    "name" : "soa_retry",
    "type" : [ "null", "long" ]
  }, {
    "name" : "soa_expire",
    "type" : [ "null", "long" ]
  }, {
    "name" : "soa_minimum",
    "type" : [ "null", "long" ]
  }, {
    "name" : "rrsig_type_covered",
    "type" : [ "null", "string" ]
  }, {
    "name" : "rrsig_algorithm",
    "type" : [ "null", "int" ]
  }, {
    "name" : "rrsig_labels",
    "type" : [ "null", "int" ]
  }, {
    "name" : "rrsig_original_ttl",
    "type" : [ "null", "long" ]
  }, {
    "name" : "rrsig_signature_inception",
    "type" : [ "null", "long" ]
  }, {
    "name" : "rrsig_signature_expiration",
    "type" : [ "null", "long" ]
  }, {
    "name" : "rrsig_key_tag",
    "type" : [ "null", "int" ]
  }, {
    "name" : "rrsig_signer_name",
    "type" : [ "null", "string" ]
  }, {
    "name" : "rrsig_signature",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cds_key_tag",
    "type" : [ "null", "int" ]
  }, {
    "name" : "cds_algorithm",
    "type" : [ "null", "int" ]
  }, {
    "name" : "cds_digest_type",
    "type" : [ "null", "int" ]
  }, {
    "name" : "cds_digest",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_flags",
    "type" : [ "null", "int" ]
  }, {
    "name" : "cdnskey_protocol",
    "type" : [ "null", "int" ]
  }, {
    "name" : "cdnskey_algorithm",
    "type" : [ "null", "int" ]
  }, {
    "name" : "cdnskey_pk_rsa_n",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_rsa_e",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_rsa_bitsize",
    "type" : [ "null", "int" ]
  }, {
    "name" : "cdnskey_pk_eccgost_x",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_eccgost_y",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_dsa_t",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_dsa_q",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_dsa_p",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_dsa_g",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_dsa_y",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_eddsa_a",
    "type" : [ "null", "string" ]
  }, {
    "name" : "cdnskey_pk_wire",
    "type" : [ "null", "string" ]
  }, {
    "name" : "caa_flags",
    "type" : [ "null", "int" ]
  }, {
    "name" : "caa_tag",
    "type" : [ "null", "string" ]
  }, {
    "name" : "caa_value",
    "type" : [ "null", "string" ]
  }, {
    "name" : "tlsa_usage",
    "type" : [ "null", "int" ]
  }, {
    "name" : "tlsa_selector",
    "type" : [ "null", "int" ]
  }, {
    "name" : "tlsa_matchtype",
    "type" : [ "null", "int" ]
  }, {
    "name" : "tlsa_certdata",
    "type" : [ "null", "string" ]
  }, {
    "name" : "ptr_name",
    "type" : [ "null", "string" ]
  } ]
}

例如,我要分析多个文件.avro的时间戳字段的时间序列。

1 个答案:

答案 0 :(得分:0)

由于我们正在处理同一数据集,因此请在Python上使用fastavro。您可以将数据加载到list中,并为此使用多个Python packages。 我希望以上内容能对您有所帮助,即使它们没有及时到来。