Migrating to a Field Collection
There is a Field Collection issue with a Field Collection Migrate destination (in the patch in comment #222). The added field_collection.migrate.inc file contain a bit of documentation on how to use it.

In you case, I guess you have a speaking engagements migration class which load your CSV file and create Speaking engagement nodes. You will then need a speaker migration class to load the same CSV file and create Speaker field collections. This second migration class depends on the first one, so when a Speaker is created, it will be linked to its Speaking engagement.

Something like

class SpeakerMigration extends Migration {

  public function __construct($arguments) {
    parent::__construct($arguments);
    $this-&gt;dependencies = array('SpeakingEngagementMigration');
    $this-&gt;source = new MigrateSourceCSV('path/to/speaking/engagement.csv', array(), array());
    $this-&gt;destination = new MigrateDestinationFieldCollection('field_speakers',array('host_entity_type' =&gt; 'node'));
    $this-&gt;map = new MigrateSQLMap($this-&gt;machineName, array(
      'id' =&gt; array(
        'type' =&gt; 'char',
        'length' =&gt; 40,
        'not null' =&gt; TRUE,
        'description' =&gt; t("Speaking Engagement's identifier"),
      )), MigrateDestinationFieldCollection::getKeySchema());
    $this-&gt;addFieldMapping('host_entity_id', 'id')
      -&gt;sourceMigration('SpeakingEngagementMigration');

    // ... Add field mapping here.
  }
}